github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/analyzers/golang/cache.go (about) 1 package golang 2 3 import "github.com/fossas/fossa-cli/analyzers/golang/resolver" 4 5 // ResolverFromLockfile loads and caches lockfile resolvers. 6 func (a *Analyzer) ResolverFromLockfile(tool resolver.Type, dir string) (resolver.Resolver, error) { 7 // Look up resolver in the cache. 8 key := string(tool) + "__fossa-cli-golang-resolver-cache-key__" + dir 9 cached, ok := a.resolverCache[key] 10 if ok { 11 return cached, nil 12 } 13 14 // If not found, construct a new resolver. 15 r, err := resolver.FromLockfile(tool, dir) 16 if err != nil { 17 return nil, err 18 } 19 20 // Cache the resolver. 21 a.resolverCache[key] = r 22 return r, nil 23 }