From 46570cf1fe68c0899fb0b522d4977100a93151ae Mon Sep 17 00:00:00 2001 From: David Shlemayev Date: Mon, 16 Oct 2023 22:26:25 +0300 Subject: [PATCH] add auto-update mechanism --- README.md | 3 +++ ampm/__init__.py | 2 +- ampm/cli.py | 5 +++++ ampm/get_ampm.sh | 8 ++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f3db9fd..cc333b7 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,9 @@ ampm --server='nfs://1.2.3.4/some/repo' get foobar:mbf5qxqli76zx7btc5n7fkq47tjs6 # Remove artifact from server (must be precise hash), Make sure no one is using the artifact! ampm remote-rm --i-realise-this-may-break-other-peoples-builds-in-the-future foobar:mbf5qxqli76zx7btc5n7fkq47tjs6cl2 + +# Update ampm +ampm update ``` ## Hash calculation algorithm diff --git a/ampm/__init__.py b/ampm/__init__.py index 0bb84ff..63a5878 100644 --- a/ampm/__init__.py +++ b/ampm/__init__.py @@ -1 +1 @@ -__version__ = '1.5.3' +__version__ = '1.5.5' diff --git a/ampm/cli.py b/ampm/cli.py index fe9c0a8..49a9599 100644 --- a/ampm/cli.py +++ b/ampm/cli.py @@ -527,6 +527,11 @@ def edit(ctx: click.Context, artifact: str, attr: Dict[str, str], env: Dict[str, remote_repo.edit_artifact(artifact, attr, env) +@cli.command() +def update(): + os.system("/opt/ampm/update.sh") + + def main(): cli() diff --git a/ampm/get_ampm.sh b/ampm/get_ampm.sh index a0098ad..f277fdb 100755 --- a/ampm/get_ampm.sh +++ b/ampm/get_ampm.sh @@ -2,6 +2,8 @@ set -e REMOTE_REPO="nfs://127.0.0.1/mnt/myshareddir#ampm_repo" +UPDATE_URL="https://github.com/Wazzaps/ampm/releases/latest/download/get_ampm.sh" +UPDATE_CMD="curl -fsSL $UPDATE_URL | sudo sh" if [ "$(id -u)" -ne 0 ]; then echo 'This script must be run as root' @@ -17,6 +19,12 @@ echo '' echo "Configuring remote repo to be '$REMOTE_REPO'..." echo "$REMOTE_REPO" > /opt/ampm.tmp/repo_uri +echo '' +echo "Configuring update url to be '$UPDATE_URL'..." +echo "#!/bin/sh" > /opt/ampm.tmp/update.sh +echo "$UPDATE_CMD" >> /opt/ampm.tmp/update.sh +chmod +x /opt/ampm.tmp/update.sh + echo '' echo 'Adding ampm launcher to /usr/local/bin/...' install /opt/ampm.tmp/ampm.sh /usr/local/bin/ampm