return m.Recipes[v]
}
-func (m *XSAMeta) NewRecipe(fv XenVersionFull) *Recipe {
+func (m *XSAMeta) NewRecipe(v XenVersion) *Recipe {
var r Recipe
r.xsa = m.XSA
- r.XenVersionFull = fv
+ r.XenVersion = v
r.Recipes = make(map[Tree]*TreeRecipe)
- m.Recipes[fv.XenVersion()] = &r
+ m.Recipes[v] = &r
return &r
}
}
type Recipe struct {
- XenVersionFull
+ XenVersion
Recipes map[Tree]*TreeRecipe
xsa int
}
xsabase += "-" + tree.String()
}
- if r.XenVersionFull == "master" {
+ if r.XenVersion == "master" {
xsabase += "-unstable"
} else {
- xsabase += "-" + r.XenVersionFull.XenVersion().String()
+ xsabase += "-" + r.XenVersion.String()
}
xsatgt := G.config.Tool.GetPath(TreeXSA) + "/" + xsabase
}
func (r *Recipe) branchName(prefix string) (branch, baseline string) {
- branch, baseline = BranchName(prefix, r.xsa, r.XenVersionFull.XenVersion())
+ branch, baseline = BranchName(prefix, r.xsa, r.XenVersion)
fmt.Printf("Branchnames: %s %s\n", branch, baseline)
func (r *Recipe) apply(xr *XenRepo, tr *TreeRecipe, prefix string) (err error) {
branch, baseline := r.branchName(prefix)
- // Make "baseline" branch, based on XenVersionFull, with Prereq patches
- err = xr.CheckoutVersion(r.XenVersionFull, baseline)
+ // FIXME change this to tr.StableRef
+ // Make "baseline" branch, based on XenVersion, with Prereq patches
+ err = xr.MakeBranch(baseline, tr.StableRef)
if err != nil {
return fmt.Errorf("Making baseline %s for xenversion %v: %v\n",
- baseline, r.XenVersionFull)
+ baseline, r.XenVersion)
}
for _, xsanum := range tr.Prereqs {
err = xr.MakeBranch(branch, baseline)
if err != nil {
return fmt.Errorf("Making tempbranch %s for xenversion %v: %v\n",
- branch, r.XenVersionFull)
+ branch, r.XenVersion)
}
for _, glob := range tr.Patches {
branch, err)
}
} else {
- err = xenrepo.CheckoutVersion(r.XenVersionFull, tmpBranch)
+ err = xenrepo.MakeBranch(tmpBranch, XenStableBranch(r.XenVersion))
if err != nil {
return fmt.Errorf("Making tempbranch %s for xenversion %v: %v\n",
- tmpBranch, r.XenVersionFull)
+ tmpBranch, r.XenVersion)
}
}
pass = false
} else {
versions[v].seen = true
- if versions[v].fv != r.XenVersionFull {
- st.Errorf("Expected fullversion %v, got %v\n",
- versions[v].fv,
- r.XenVersionFull)
+ if v != r.XenVersion {
+ st.Errorf("Expected version %v, got %v\n",
+ v,
+ r.XenVersion)
pass = false
}
ForEachCodeTree(func(tree Tree) error {
"fmt"
)
-/* Backport: Apply & build if the branch doesn't exist / if override is set */
-
-func backport(xsa *XSAMeta) (ret int) {
- for i := range xsa.Recipes {
- prefix := "xsa"
- r := xsa.Recipes[i]
-
- if err := r.IsApplied(prefix); err != nil {
- if _, isMissingBranch := err.(ErrorMissingBranch); !isMissingBranch {
- fmt.Printf("Error checking to see if recipe has been applied: %v\n", err)
- return 1
- }
-
- err = r.Apply(prefix)
- if err != nil {
- fmt.Printf("Applying recipe: %v\n", err)
- fmt.Printf("FAILED: %v\n", r.XenVersionFull)
- return 1
- }
-
- err = r.Build(prefix)
- if err != nil {
- fmt.Printf("Building recipe: %v\n", err)
- fmt.Printf("FAILED: %v\n", r.XenVersionFull)
- return 1
- }
- fmt.Printf("SUCCESS: %v\n", r.XenVersionFull)
- }
-
- }
-
- return 0
-}
-
func test(xsa *XSAMeta, args []string, apply bool, build bool) (ret int) {
vers := VersionsFromArgs(xsa, args)
err := r.Apply(prefix)
if err != nil {
fmt.Printf("Applying recipe: %v\n", err)
- fmt.Printf("FAILED: %v\n", r.XenVersionFull)
+ fmt.Printf("FAILED: %v\n", r.XenVersion)
return 1
}
} else {
err := r.Build(prefix)
if err != nil {
fmt.Printf("Building recipe: %v\n", err)
- fmt.Printf("FAILED: %v\n", r.XenVersionFull)
+ fmt.Printf("FAILED: %v\n", r.XenVersion)
return 1
}
}
- fmt.Printf("SUCCESS: %v\n", r.XenVersionFull)
+ fmt.Printf("SUCCESS: %v\n", r.XenVersion)
}
return 0
return
}
-func (xr *XenRepo) CheckoutVersion(ver XenVersionFull, branchName string) (err error) {
- tag := xr.GetTag(ver)
- fmt.Printf("Creating branch %s based on tag %s\n",
- branchName, tag)
- err = xr.MakeBranch(branchName, tag)
- return
-}
-
+// Check out stable-$version (or 'master')
func (xr *XenRepo) tagsToVersions(tags []string) (versions []XenVersionFull, err error) {
re := regexp.MustCompile("^" + xr.releaseTagPrefix() + "([0-9]+.[0-9]+.[0-9]+)$")
err := r.Apply(prefix)
if err != nil {
fmt.Printf("Applying recipe: %v\n", err)
- fmt.Printf("FAILED: %v\n", r.XenVersionFull)
+ fmt.Printf("FAILED: %v\n", r.XenVersion)
return 1
}
}
xsa.SupportedVersions = append(xsa.SupportedVersions, v)
- r := xsa.NewRecipe(vm.Latest)
+ r := xsa.NewRecipe(v)
for _, t := range xsa.Trees {
var err error