WIP: #172 upgrade --major/minor/patch placeholder

This commit is contained in:
knoflook 2021-10-01 19:48:48 +02:00 committed by Gitea
parent c616907b71
commit 6fc5c31347
1 changed files with 48 additions and 22 deletions

View File

@ -29,9 +29,22 @@ semver-like convention. In this case, all possible tags will be listed and it
is up to the end-user to decide.
`,
ArgsUsage: "<recipe>",
Flags: []cli.Flag{
PatchFlag,
MinorFlag,
MajorFlag,
},
Action: func(c *cli.Context) error {
recipe := internal.ValidateRecipe(c)
bumpType := btoi(Major)*4 + btoi(Minor)*2 + btoi(Patch)
if bumpType != 0 {
// a bitwise check if the number is a power of 2
if (bumpType & (bumpType - 1)) != 0 {
logrus.Fatal("you can only use one of: --major, --minor, --patch.")
}
}
for _, service := range recipe.Config.Services {
catlVersions, err := catalogue.VersionsOfService(recipe.Name, service.Name)
if err != nil {
@ -104,7 +117,18 @@ is up to the end-user to decide.
}
logrus.Debugf("detected compatible upgradable tags '%s' for '%s'", compatibleStrings, service.Name)
if bumpType != 0 {
if bumpType == 1 {
// Patch upgrade
fmt.Println("Patch")
} else if bumpType == 2 {
// Minor upgrade
fmt.Println("Minor")
} else {
// Major upgrade
fmt.Println("Major")
}
} else {
msg := fmt.Sprintf("upgrade to which tag? (service: %s, tag: %s)", service.Name, tag)
if !tagcmp.IsParsable(img.(reference.NamedTagged).Tag()) {
tag := img.(reference.NamedTagged).Tag()
@ -124,11 +148,13 @@ is up to the end-user to decide.
if err := survey.AskOne(prompt, &upgradeTag); err != nil {
logrus.Fatal(err)
}
}
/*
if err := recipe.UpdateTag(image, upgradeTag); err != nil {
logrus.Fatal(err)
}
logrus.Debugf("tag updated from '%s' to '%s' for '%s'", image, upgradeTag, recipe.Name)
*/
}
return nil