From eeec37372801c3dab427de474945b8d30ad88395 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Mon, 17 Jul 2023 17:06:39 +1000 Subject: [PATCH] Safer fetching of linked worktree paths --- pkg/commands/git_commands/worktree.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/commands/git_commands/worktree.go b/pkg/commands/git_commands/worktree.go index ce2d831c1..460a8b7f9 100644 --- a/pkg/commands/git_commands/worktree.go +++ b/pkg/commands/git_commands/worktree.go @@ -155,7 +155,17 @@ func linkedWortkreePaths() []string { result := []string{} worktreePath := filepath.Join(repoPath, ".git", "worktrees") // for each directory in this path we're going to cat the `gitdir` file and append its contents to our result - err := filepath.Walk(worktreePath, func(path string, info fs.FileInfo, err error) error { + + // ensure the directory exists + _, err := os.Stat(worktreePath) + if err != nil { + if errors.Is(err, fs.ErrNotExist) { + return result + } + log.Fatalln(err.Error()) + } + + err = filepath.Walk(worktreePath, func(path string, info fs.FileInfo, err error) error { if info.IsDir() { gitDirPath := filepath.Join(path, "gitdir") gitDirBytes, err := os.ReadFile(gitDirPath)