import (
"fmt"
"os"
+ "path/filepath"
"testing"
)
// Delete:
// All xenversions > 4.8
- // 4.8.0, 4.7.2, 4.6.5, 4.5.5
+ // 4.8.0, 4.7.2
+ // (4.6 and previous will have no new versions)
+ vlimit := map[XenVersion]XenVersionFull{
+ "4.8": "4.8.0",
+ "4.7": "4.7.2",
+ }
+ r := G.repos.XenRepos[TreeXen]
+ versions, err := r.GetVersions()
+ if err != nil {
+ t.Errorf("Error getting Xen releases: %v\n", err)
+ return false
+ }
+
+ // FIXME: Grab 4.8.1 ref so we can re-tag it and test repo update
+ for _, fv := range versions {
+ l, prs := vlimit[fv.XenVersion()]
+ if fv.XenVersion().IsGreaterEqualThan(XenVersion("4.9")) ||
+ (prs && fv.Point() > l.Point()) {
+ tag := "RELEASE-" + string(fv)
+ t.Logf("Deleting tag %s\n", tag)
+ if err := r.DeleteTag(tag); err != nil {
+ t.Errorf("Deleting tag %s: %v\n", tag, err)
+ return false
+ }
+ }
+ }
+
+ // Delete files potentially left over from previous runs
+ if !FullClone {
+ // rm xsa.git/*.meta
+ files, err := filepath.Glob("xsa.git/*.meta")
+ if err != nil {
+ t.Errorf("Finding meta files to remove: %v", err)
+ return false
+ }
+
+ for _, file := range files {
+ t.Logf("Removing meta file %s\n", file)
+ err = os.Remove(file)
+ if err != nil {
+ t.Errorf("Removing meta file %s: %v", file, err)
+ return false
+ }
+ }
+ }
return true
}