From eb4a2b3339e8172b2e84887e7c86e8b1eda85dcd Mon Sep 17 00:00:00 2001 From: decentral1se Date: Tue, 7 Sep 2021 15:22:42 +0200 Subject: [PATCH 1/3] build: fix arch download on installer script Only support x86_64 for now as I'm moving fast. --- scripts/installer/installer | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installer/installer b/scripts/installer/installer index 38998ebf..b29cd8cb 100755 --- a/scripts/installer/installer +++ b/scripts/installer/installer @@ -38,10 +38,10 @@ function install_abra_release { release_url=$(curl -s "$ABRA_RELEASE_URL" | python3 -c "import sys, json; \ payload = json.load(sys.stdin); \ - url = [a['browser_download_url'] for a in payload['assets'] if 'arm64' in a['name']][0]; \ + url = [a['browser_download_url'] for a in payload['assets'] if 'x86_64' in a['name']][0]; \ print(url)") - echo "downloading $ABRA_VERSION AMD64 binary release for abra..." + echo "downloading $ABRA_VERSION x86_64 binary release for abra..." curl --progress-bar "$release_url" --output "$HOME/.local/bin/abra" chmod +x "$HOME/.local/bin/abra" From f1659b3bda35e5fde347afda520bbdcf7f0be3ff Mon Sep 17 00:00:00 2001 From: decentral1se Date: Tue, 7 Sep 2021 15:23:10 +0200 Subject: [PATCH 2/3] feat: support abra upgrading --- cli/cli.go | 1 + cli/internal/command.go | 38 ++++++++++++++++++++++++++++++++++++++ cli/upgrade.go | 22 ++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 cli/internal/command.go create mode 100644 cli/upgrade.go diff --git a/cli/cli.go b/cli/cli.go index 97a20b1d..e3ef2067 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -55,6 +55,7 @@ func RunApp(version, commit string) { server.ServerCommand, recipe.RecipeCommand, VersionCommand, + UpgradeCommand, }, Flags: []cli.Flag{ VerboseFlag, diff --git a/cli/internal/command.go b/cli/internal/command.go new file mode 100644 index 00000000..70924c7e --- /dev/null +++ b/cli/internal/command.go @@ -0,0 +1,38 @@ +package internal + +import ( + "bufio" + "fmt" + "os/exec" +) + +func RunCmd(cmd *exec.Cmd) error { + r, err := cmd.StdoutPipe() + if err != nil { + return err + } + + cmd.Stderr = cmd.Stdout + done := make(chan struct{}) + scanner := bufio.NewScanner(r) + + go func() { + for scanner.Scan() { + line := scanner.Text() + fmt.Println(line) + } + done <- struct{}{} + }() + + if err := cmd.Start(); err != nil { + return err + } + + <-done + + if err := cmd.Wait(); err != nil { + return err + } + + return nil +} diff --git a/cli/upgrade.go b/cli/upgrade.go new file mode 100644 index 00000000..c43b0e45 --- /dev/null +++ b/cli/upgrade.go @@ -0,0 +1,22 @@ +package cli + +import ( + "os/exec" + + "coopcloud.tech/abra/cli/internal" + "github.com/sirupsen/logrus" + "github.com/urfave/cli/v2" +) + +// UpgradeCommand upgrades abra in-place. +var UpgradeCommand = &cli.Command{ + Name: "upgrade", + Usage: "Upgrade abra", + Action: func(c *cli.Context) error { + cmd := exec.Command("bash", "-c", "curl -s https://install.abra.coopcloud.tech | bash") + if err := internal.RunCmd(cmd); err != nil { + logrus.Fatal(err) + } + return nil + }, +} From b0460bd923ffba4fa3036782f2863f0b1f5ed28b Mon Sep 17 00:00:00 2001 From: decentral1se Date: Tue, 7 Sep 2021 15:23:33 +0200 Subject: [PATCH 3/3] docs: mark `abra upgrade` as done --- TODO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index 6382ab4c..99f77c3e 100644 --- a/TODO.md +++ b/TODO.md @@ -42,7 +42,7 @@ - [x] `sync` - [x] `versions` - [x] `lint` - - [ ] `upgrade` + - [x] `upgrade` - [x] `version` ## Next phase