]> Cypherpunks.ru repositories - gocheese.git/blobdiff - refresh.go
Fix mtimeless touch logic
[gocheese.git] / refresh.go
index d9411179ef3ccd79909e01aa1eb1856fc2d547a9..59c8ceb9f5dd7c2b6288e27eb1d1cc0c9f6574e9 100644 (file)
@@ -240,7 +240,7 @@ func refreshDir(
                                http.Error(w, err.Error(), http.StatusInternalServerError)
                                return false
                        }
-                       log.Println(r.RemoteAddr, "pypi", pkgName+"."+MetadataFile, "touch")
+                       log.Println(r.RemoteAddr, "pypi", pkgName+"/"+MetadataFile, "touch")
                }
        }
        mtimes := make(map[string]time.Time)
@@ -338,12 +338,17 @@ func refreshDir(
                        hasherNew = blake2b256New
                        hashSize = blake2b.Size256
                default:
-                       log.Println("error", r.RemoteAddr, "pypi", filename, "unknown digest", hashAlgo)
+                       log.Println(
+                               "error", r.RemoteAddr, "pypi",
+                               filename, "unknown digest", hashAlgo,
+                       )
                        http.Error(w, "unknown digest algorithm", http.StatusBadGateway)
                        return false
                }
                if len(digest) != hashSize {
-                       log.Println("error", r.RemoteAddr, "pypi", filename, "invalid digest length")
+                       log.Println(
+                               "error", r.RemoteAddr, "pypi",
+                               filename, "invalid digest length")
                        http.Error(w, "invalid digest length", http.StatusBadGateway)
                        return false
                }
@@ -546,8 +551,8 @@ func refreshDir(
                }
                path = path + "." + hashAlgo
                stat, err := os.Stat(path)
-               if err == nil &&
-                       (mtimeExists && stat.ModTime().Truncate(time.Second).Equal(mtime)) {
+               if err == nil && (!mtimeExists ||
+                       (mtimeExists && stat.ModTime().Truncate(time.Second).Equal(mtime))) {
                        continue
                }
                if err != nil && !os.IsNotExist(err) {