From 80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f Mon Sep 17 00:00:00 2001 From: superherointj <5861043+superherointj@users.noreply.github.com> Date: Wed, 22 Sep 2021 16:41:14 -0300 Subject: [PATCH] linode-cli: add updateScript (#138547) * linode-cli: add updateScript * Update pkgs/tools/virtualization/linode-cli/default.nix Co-authored-by: Sandro --- .../virtualization/linode-cli/default.nix | 8 +++-- .../tools/virtualization/linode-cli/update.sh | 30 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 pkgs/tools/virtualization/linode-cli/update.sh diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix index 1a3de2604257..eef08eec0a1f 100644 --- a/pkgs/tools/virtualization/linode-cli/default.nix +++ b/pkgs/tools/virtualization/linode-cli/default.nix @@ -11,11 +11,13 @@ }: let + sha256 = "08j7j9fpxh08vkczjqahb8r55bwks8p3ykrv6a2kfi309629nm96"; # specVersion taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`. specVersion = "4.104.0"; + specSha256 = "0lbky0djqsndp33067q6yir5525m3zcgkpvf1z16mkspkixzadqs"; spec = fetchurl { url = "https://raw.githubusercontent.com/linode/linode-api-docs/v${specVersion}/openapi.yaml"; - sha256 = "0lbky0djqsndp33067q6yir5525m3zcgkpvf1z16mkspkixzadqs"; + sha256 = specSha256; }; in @@ -28,7 +30,7 @@ buildPythonApplication rec { owner = "linode"; repo = pname; rev = version; - sha256 = "08j7j9fpxh08vkczjqahb8r55bwks8p3ykrv6a2kfi309629nm96"; + inherit sha256; }; # remove need for git history @@ -60,6 +62,8 @@ buildPythonApplication rec { installShellCompletion --cmd linode-cli --bash <($out/bin/linode-cli --skip-config completion bash) ''; + passthru.updateScript = ./update.sh; + meta = with lib; { description = "The Linode Command Line Interface"; homepage = "https://github.com/linode/linode-cli"; diff --git a/pkgs/tools/virtualization/linode-cli/update.sh b/pkgs/tools/virtualization/linode-cli/update.sh new file mode 100755 index 000000000000..281d0e1df970 --- /dev/null +++ b/pkgs/tools/virtualization/linode-cli/update.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnugrep gnused jq yq-go + +set -eu -o pipefail + +cd $(dirname "${BASH_SOURCE[0]}") + +SPEC_VERSION=$(curl -s https://www.linode.com/docs/api/openapi.yaml | yq eval '.info.version' -) + +SPEC_SHA256=$(nix-prefetch-url --quiet https://raw.githubusercontent.com/linode/linode-api-docs/v${SPEC_VERSION}/openapi.yaml) + +VERSION=$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/linode/linode-cli/tags" \ + | jq 'map(.name)' \ + | grep '"' \ + | sed 's/[ ",(^v)]//g' \ + | grep -v -e rc -e list \ + | cut -d '"' -f4 | sort -rV | head -n 1) + +SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linode/linode-cli/archive/refs/tags/${VERSION}.tar.gz) + +setKV () { + sed -i "s/$1 = \".*\"/$1 = \"$2\"/" default.nix +} + +setKV specVersion ${SPEC_VERSION} +setKV specSha256 ${SPEC_SHA256} +setKV version ${VERSION} +setKV sha256 ${SHA256}