From adc96f15acb1fc2b69479d866372ed9d05691827 Mon Sep 17 00:00:00 2001 From: Mark Molinaro Date: Tue, 18 Jan 2022 00:23:09 -0800 Subject: [PATCH] fix: handle dead symlinks in walk --- cli/internal/fs/copy_file.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cli/internal/fs/copy_file.go b/cli/internal/fs/copy_file.go index 6f6cd5a13061f..261af59bb3a96 100644 --- a/cli/internal/fs/copy_file.go +++ b/cli/internal/fs/copy_file.go @@ -76,7 +76,11 @@ func WalkMode(rootPath string, callback func(name string, isDir bool, mode os.Fi if isDirLike, err := info.IsDirOrSymlinkToDir(); err == nil { return callback(name, isDirLike, info.ModeType()) } else { - return err + // Skip running callback on "dead" symlink (symlink to directory that doesn't exist) + if err, ok := err.(*os.PathError); !ok { + return err + } + return nil } }, Unsorted: true,