diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 252e16a..32ed579 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -331,6 +331,9 @@ func (s *Scanner) ToManifest(ctx context.Context, w io.Writer, progress chan<- S // start with a dot (hidden files/directories). func pathIsHidden(p string) bool { tp := path.Clean(p) + if tp == "." || tp == "/" { + return false + } if strings.HasPrefix(tp, ".") { return true } diff --git a/mfer/scanner.go b/mfer/scanner.go index df0df11..943fdd7 100644 --- a/mfer/scanner.go +++ b/mfer/scanner.go @@ -385,6 +385,9 @@ func (s *Scanner) ToManifest(ctx context.Context, w io.Writer, progress chan<- S // The path should use forward slashes. func IsHiddenPath(p string) bool { tp := path.Clean(p) + if tp == "." || tp == "/" { + return false + } if strings.HasPrefix(tp, ".") { return true } diff --git a/mfer/scanner_test.go b/mfer/scanner_test.go index b6e6296..55bc462 100644 --- a/mfer/scanner_test.go +++ b/mfer/scanner_test.go @@ -352,6 +352,8 @@ func TestIsHiddenPath(t *testing.T) { {"/absolute/.hidden", true}, {"./relative", false}, // path.Clean removes leading ./ {"a/b/c/.d/e", true}, + {".", false}, // current directory is not hidden + {"/", false}, // root is not hidden } for _, tt := range tests {