git-credential-manager: fix update script

copied the majority of the script from discordchatexporter-cli.
current script fails with:

```
at /nix/store/c7h4qb73ghvx2bgbm1dk6lyh7vnb8icc-nix-prefetch-0.4.1/lib/nix-prefetch/prelude.nix:3:46:
...
error: experimental Nix feature 'flakes' is disabled; use '--extra-experimental-features flakes' to override
```
This commit is contained in:
éclairevoyant
2023-11-13 19:55:16 -05:00
parent c0fdd850d9
commit 703e27175c
@@ -1,23 +1,15 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix-prefetch nix coreutils gnused
#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
set -eo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
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
new_version="$(curl -s "https://api.github.com/repos/git-ecosystem/git-credential-manager/releases?per_page=1" | jq -r '.[0].name' | sed 's|^GCM ||')"
old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
if [[ "$new_version" == "$old_version" ]]; 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 -f "$(pwd)/../../../.." git-credential-manager)"
sed -i -Ee "s/hash = \"sha256-[A-Za-z0-9/+=]{44}\"/hash = \"${hash}\"/" default.nix
$(nix-build ../../../.. -A git-credential-manager.fetch-deps --no-out-link)
cd ../../../..
update-source-version git-credential-manager "$new_version"
$(nix-build -A git-credential-manager.fetch-deps --no-out-link)