From c7e6d5d813d9d2557f3491debc50550ae99d812f Mon Sep 17 00:00:00 2001 From: Zihao Zhang Date: Fri, 18 Aug 2023 12:13:55 -0700 Subject: [PATCH] improve caching (#16) --- main.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 98119ed..fa2890e 100644 --- a/main.go +++ b/main.go @@ -34,8 +34,8 @@ type block struct { var vscDirs = []string{".git", ".hg", ".bzr", ".svn"} type cacheEntry struct { - file string - err error + dir string + err error } var pkgCache = map[string]cacheEntry{} @@ -46,16 +46,16 @@ func findFile(filePath string) (string, error) { dir, file := filepath.Split(filePath) var result cacheEntry var ok bool - if result, ok = pkgCache[filePath]; !ok { + if result, ok = pkgCache[dir]; !ok { pkg, err := build.Import(dir, ".", build.FindOnly) if err == nil { - result = cacheEntry{filepath.Join(pkg.Dir, file), nil} + result = cacheEntry{filepath.Join(pkg.Dir), nil} } else { result = cacheEntry{"", err} } - pkgCache[filePath] = result + pkgCache[dir] = result } - return result.file, result.err + return filepath.Join(result.dir, file), result.err } // findRepositoryRoot finds the VCS root dir of a given dir