From 70f405e7b15148ba0c3de89355b7dd5cb3befa60 Mon Sep 17 00:00:00 2001 From: Alec Lanter Date: Mon, 23 Jan 2023 10:10:11 -0600 Subject: test: resolve changes for PR #1004, add unit test, fix issue uncovered by unit test --- repository/gogit.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'repository/gogit.go') diff --git a/repository/gogit.go b/repository/gogit.go index 18f7fb59..649614fb 100644 --- a/repository/gogit.go +++ b/repository/gogit.go @@ -172,25 +172,24 @@ func detectGitPath(path string) (string, error) { if err == nil { if !fi.IsDir() { // See if our .git item is a dotfile that holds a submodule reference - dotfile, err := os.Open(fi.Name()) + dotfile, err := os.Open(filepath.Join(path, fi.Name())) if err != nil { - // Can't open" error + // Can't open error return "", fmt.Errorf(".git exists but is not a directory or a readable file: %w", err) } // We aren't going to defer the dotfile.Close, because we might keep looping, so we have to be sure to // clean up before returning an error reader := bufio.NewReader(dotfile) line, _, err := reader.ReadLine() + _ = dotfile.Close() if err != nil { - _ = dotfile.Close() return "", fmt.Errorf(".git exists but is not a direcctory and cannot be read: %w", err) } dotContent := string(line) if strings.HasPrefix(dotContent, "gitdir:") { - _ = dotfile.Close() // This is a submodule parent path link. Strip the prefix, clean the string of whitespace just to // be safe, and return - dotContent = strings.TrimSpace(dotContent[7:]) + dotContent = strings.TrimSpace(strings.TrimPrefix(dotContent, "gitdir: ")) return dotContent, nil } return "", fmt.Errorf(".git exist but is not a directory") -- cgit