From 74a70edb031ca878fa67890a160fd9db625c090a Mon Sep 17 00:00:00 2001 From: knoflook Date: Fri, 1 Oct 2021 20:33:24 +0200 Subject: [PATCH] feat: upgrade an app with no user input with --minor/major/patch flag --- cli/recipe/upgrade.go | 31 +++++++++++++++---------------- go.mod | 2 +- go.sum | 4 ++++ 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/cli/recipe/upgrade.go b/cli/recipe/upgrade.go index e1884c94a..dbf6d8ac8 100644 --- a/cli/recipe/upgrade.go +++ b/cli/recipe/upgrade.go @@ -117,16 +117,18 @@ is up to the end-user to decide. } logrus.Debugf("detected compatible upgradable tags '%s' for '%s'", compatibleStrings, service.Name) + var upgradeTag string 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") + for _, upTag := range compatible { + upElement, err := tag.UpgradeElement(upTag) + if err != nil { + return err + } + delta := tagcmp.UpgradeType(upElement) + if delta == bumpType { + upgradeTag = upTag.String() + break + } } } else { msg := fmt.Sprintf("upgrade to which tag? (service: %s, tag: %s)", service.Name, tag) @@ -140,7 +142,6 @@ is up to the end-user to decide. } } - var upgradeTag string prompt := &survey.Select{ Message: msg, Options: compatibleStrings, @@ -149,12 +150,10 @@ is up to the end-user to decide. 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) - */ + 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 diff --git a/go.mod b/go.mod index a1934ba62..32495d25b 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module coopcloud.tech/abra go 1.17 require ( - coopcloud.tech/tagcmp v0.0.0-20210906102006-2a8edd82d75d + coopcloud.tech/tagcmp v0.0.0-20211003080922-7b06d1c16182 github.com/AlecAivazis/survey/v2 v2.3.1 github.com/Autonomic-Cooperative/godotenv v1.3.1-0.20210731170023-c37c0920d1a4 github.com/Gurpartap/logrus-stack v0.0.0-20170710170904-89c00d8a28f4 diff --git a/go.sum b/go.sum index fe7354d0e..82ce42e09 100644 --- a/go.sum +++ b/go.sum @@ -23,6 +23,10 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= coopcloud.tech/tagcmp v0.0.0-20210906102006-2a8edd82d75d h1:5jeUIiToqQ7vTlLeycdGp4Ezurd6/RTNl5K38usHtoo= coopcloud.tech/tagcmp v0.0.0-20210906102006-2a8edd82d75d/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ= +coopcloud.tech/tagcmp v0.0.0-20211003074705-03d2daced95c h1:7kCjnhjrOevcJeA/koCyyv20E6AglvqC7biGbLzyrbU= +coopcloud.tech/tagcmp v0.0.0-20211003074705-03d2daced95c/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ= +coopcloud.tech/tagcmp v0.0.0-20211003080922-7b06d1c16182 h1:VGFzudsoGXGRaw5eJE3rErHHUDsmuIJpQkdfKJgrNs4= +coopcloud.tech/tagcmp v0.0.0-20211003080922-7b06d1c16182/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AlecAivazis/survey/v2 v2.3.1 h1:lzkuHA60pER7L4eYL8qQJor4bUWlJe4V0gqAT19tdOA= github.com/AlecAivazis/survey/v2 v2.3.1/go.mod h1:TH2kPCDU3Kqq7pLbnCWwZXDBjnhZtmsCle5EiYDJ2fg=