summary refs log tree commit diff
path: root/pkgs/tools/virtualization
diff options
context:
space:
mode:
authorsuperherointj <5861043+superherointj@users.noreply.github.com>2021-09-22 16:41:14 -0300
committerGitHub <noreply@github.com>2021-09-22 21:41:14 +0200
commit80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f (patch)
tree8c48f438409f221f0df7aa4689735905a0fb5c89 /pkgs/tools/virtualization
parentd10fd707e9216dc3415eec537115170dba713644 (diff)
downloadnixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.tar
nixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.tar.gz
nixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.tar.bz2
nixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.tar.lz
nixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.tar.xz
nixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.tar.zst
nixpkgs-80ea69bdc8b45f0b0f7d22a2beca539d6d384d8f.zip
linode-cli: add updateScript (#138547)
* linode-cli: add updateScript

* Update pkgs/tools/virtualization/linode-cli/default.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Diffstat (limited to 'pkgs/tools/virtualization')
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix8
-rwxr-xr-xpkgs/tools/virtualization/linode-cli/update.sh30
2 files changed, 36 insertions, 2 deletions
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index 1a3de260425..eef08eec0a1 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 00000000000..281d0e1df97
--- /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}