Issue #182 and #183: glide caching handling prefixes poorly
diff --git a/util/util.go b/util/util.go index fb8267a..cd26d31 100644 --- a/util/util.go +++ b/util/util.go
@@ -74,40 +74,40 @@ checkURL := u.String() resp, err := http.Get(checkURL) if err != nil { - addToRemotePackageCache(pkg) + addToRemotePackageCache(pkg, pkg) return pkg } defer resp.Body.Close() nu, err := parseImportFromBody(u, resp.Body) if err != nil { - addToRemotePackageCache(pkg) + addToRemotePackageCache(pkg, pkg) return pkg } else if nu == "" { - addToRemotePackageCache(pkg) + addToRemotePackageCache(pkg, pkg) return pkg } - addToRemotePackageCache(nu) + addToRemotePackageCache(pkg, nu) return nu } // The caching is not concurrency safe but should be made to be that way. // This implementation is far too much of a hack... rewrite needed. -var remotePackageCache = make(map[string]bool) +var remotePackageCache = make(map[string]string) func checkRemotePackageCache(pkg string) (string, bool) { - for k := range remotePackageCache { - if strings.HasPrefix(pkg, k) { - return k, true + for k, v := range remotePackageCache { + if pkg == k { + return v, true } } return pkg, false } -func addToRemotePackageCache(pkg string) { - remotePackageCache[pkg] = true +func addToRemotePackageCache(pkg, v string) { + remotePackageCache[pkg] = v } func parseImportFromBody(ur *url.URL, r io.ReadCloser) (u string, err error) {