From 94924f1ea5454654e967cc689049aedee4653453 Mon Sep 17 00:00:00 2001 From: ronantakizawa Date: Wed, 4 Sep 2024 15:30:43 -0600 Subject: [PATCH] fix: put skipping broken symlink logic in Ignore not SymWalk --- pkg/ignore/rules.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/ignore/rules.go b/pkg/ignore/rules.go index 88de407ad..00910f03f 100644 --- a/pkg/ignore/rules.go +++ b/pkg/ignore/rules.go @@ -100,6 +100,16 @@ func (r *Rules) Ignore(path string, fi os.FileInfo) bool { if path == "." || path == "./" { return false } + + // Handle broken symlinks + if fi.Mode()&os.ModeSymlink != 0 { + _, err := filepath.EvalSymlinks(path) + if err != nil { + log.Printf("Skipping broken symlink: %s", path) + return true // Treat broken symlink as ignored + } + } + for _, p := range r.patterns { if p.match == nil { log.Printf("ignore: no matcher supplied for %q", p.raw) @@ -127,6 +137,7 @@ func (r *Rules) Ignore(path string, fi os.FileInfo) bool { return true } } + return false }