in cmd/sync-tags/main.go [541:596]
func cleanCacheForTag(tag string) error {
dir, err := os.Getwd()
if err != nil {
return fmt.Errorf("unable to get current working directory: %v", err)
}
pkg, err := fullPackageName(dir)
if err != nil {
return fmt.Errorf("failed to get package at %s: %v", dir, err)
}
cacheDir := fmt.Sprintf("%s/pkg/mod/cache/download/%s/@v", os.Getenv("GOPATH"), pkg)
goModFile := fmt.Sprintf("%s/%s.mod", cacheDir, tag)
if _, err := os.Stat(goModFile); err == nil {
if err2 := os.Remove(goModFile); err2 != nil {
return fmt.Errorf("error deleting file %s: %v", goModFile, err2)
}
}
infoFile := fmt.Sprintf("%s/%s.info", cacheDir, tag)
if _, err := os.Stat(infoFile); err == nil {
if err2 := os.Remove(infoFile); err2 != nil {
return fmt.Errorf("error deleting file %s: %v", infoFile, err2)
}
}
zipFile := fmt.Sprintf("%s/%s.zip", cacheDir, tag)
if _, err := os.Stat(zipFile); err == nil {
if err2 := os.Remove(zipFile); err2 != nil {
return fmt.Errorf("error deleting file %s: %v", zipFile, err2)
}
}
listFile := fmt.Sprintf("%s/list", cacheDir)
if _, err := os.Stat(listFile); err == nil {
oldContent, err2 := ioutil.ReadFile(listFile)
if err2 != nil {
return fmt.Errorf("error reading file %s: %v", listFile, err2)
}
lines := strings.Split(string(oldContent), "\n")
newContent := []string{}
for _, line := range lines {
if line != tag {
newContent = append(newContent, line)
}
}
output := strings.Join(newContent, "\n")
if err := ioutil.WriteFile(listFile, []byte(output), 0644); err != nil {
return fmt.Errorf("error reading file %s: %v", listFile, err)
}
}
fmt.Printf("Cleared go mod cache files for %s tag.\n", tag)
return nil
}