about summary refs log tree commit diff
path: root/pkgs/applications/version-management/git-credential-manager/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/version-management/git-credential-manager/update.sh')
-rwxr-xr-xpkgs/applications/version-management/git-credential-manager/update.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/git-credential-manager/update.sh b/pkgs/applications/version-management/git-credential-manager/update.sh
new file mode 100755
index 000000000000..e1a03f296f1f
--- /dev/null
+++ b/pkgs/applications/version-management/git-credential-manager/update.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq nix-prefetch nix coreutils gnused
+
+cd "$(dirname "$0")"
+
+set -euo pipefail
+
+latestVersion="$(curl -s "https://api.github.com/repos/git-ecosystem/git-credential-manager/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
+currentVersion="$(nix-instantiate --eval -E "with import ../../../.. {}; git-credential-manager.version" | tr -d '"')"
+
+if [[ "$latestVersion" == "$currentVersion" ]]; then
+    echo "up to date"
+    exit 0
+fi
+
+echo "updating $currentVersion -> $latestVersion"
+
+sed -i -e "s/version = \"${currentVersion}\"/version = \"${latestVersion}\"/" default.nix
+hash="$(nix-prefetch ./.)"
+sed -i -Ee "s/hash = \"sha256-[A-Za-z0-9=]{44}\"/hash = \"${hash}\"/" default.nix
+
+
+nugetDeps="$(realpath ./deps.nix)"
+$(nix-build ../../../.. -A git-credential-manager.fetch-deps --no-out-link) "$nugetDeps"