From 4514a547443e1b0a101cd48e65d385bdfada7939 Mon Sep 17 00:00:00 2001 From: Deluan Date: Thu, 22 Oct 2020 13:59:54 -0400 Subject: [PATCH] Fix ignoring hidden folders when scanning --- scanner/load_tree.go | 4 ++++ scanner/load_tree_test.go | 4 ++++ tests/fixtures/.hidden_folder/.gitkeep | 0 3 files changed, 8 insertions(+) create mode 100644 tests/fixtures/.hidden_folder/.gitkeep diff --git a/scanner/load_tree.go b/scanner/load_tree.go index a4b7a3f83..b5befb84c 100644 --- a/scanner/load_tree.go +++ b/scanner/load_tree.go @@ -5,6 +5,7 @@ import ( "io/ioutil" "os" "path/filepath" + "strings" "time" "github.com/deluan/navidrome/consts" @@ -105,6 +106,9 @@ func isDirOrSymlinkToDir(baseDir string, dirInfo os.FileInfo) (bool, error) { // isDirIgnored returns true if the directory represented by dirInfo contains an // `ignore` file (named after consts.SkipScanFile) func isDirIgnored(baseDir string, dirInfo os.FileInfo) bool { + if strings.HasPrefix(dirInfo.Name(), ".") { + return true + } _, err := os.Stat(filepath.Join(baseDir, dirInfo.Name(), consts.SkipScanFile)) return err == nil } diff --git a/scanner/load_tree_test.go b/scanner/load_tree_test.go index fb16b1c3c..e645e6f9a 100644 --- a/scanner/load_tree_test.go +++ b/scanner/load_tree_test.go @@ -38,5 +38,9 @@ var _ = Describe("load_tree", func() { dir, _ := os.Stat(filepath.Join(baseDir, "ignored_folder")) Expect(isDirIgnored(baseDir, dir)).To(BeTrue()) }) + It("returns true when folder name starts with a `.`", func() { + dir, _ := os.Stat(filepath.Join(baseDir, ".hidden_folder")) + Expect(isDirIgnored(baseDir, dir)).To(BeTrue()) + }) }) }) diff --git a/tests/fixtures/.hidden_folder/.gitkeep b/tests/fixtures/.hidden_folder/.gitkeep new file mode 100644 index 000000000..e69de29bb