about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/blockchains/electrs/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/blockchains/electrs/update.sh')
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/electrs/update.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/blockchains/electrs/update.sh b/nixpkgs/pkgs/applications/blockchains/electrs/update.sh
new file mode 100755
index 000000000000..3e4d90db59de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/electrs/update.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils curl jq git gnupg common-updater-scripts
+set -euo pipefail
+
+# Fetch latest release, GPG-verify the tag, update derivation
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+nixpkgs=$(realpath "$scriptDir"/../../../..)
+
+oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).electrs.version" | tr -d '"')
+version=$(curl -s --show-error "https://api.github.com/repos/romanz/electrs/releases/latest" | jq -r '.tag_name' | tail -c +2)
+
+if [[ $version == $oldVersion ]]; then
+  echo "Already at latest version $version"
+  exit 0
+fi
+echo "New version: $version"
+
+tmpdir=$(mktemp -d /tmp/electrs-verify-gpg.XXX)
+repo=$tmpdir/repo
+trap "rm -rf $tmpdir" EXIT
+
+git clone --depth 1 --branch v${version} -c advice.detachedHead=false https://github.com/romanz/electrs $repo
+
+export GNUPGHOME=$tmpdir
+echo
+echo "Fetching romanz's key"
+gpg --keyserver hkps://keys.openpgp.org --recv-keys 15c8c3574ae4f1e25f3f35c587cae5fa46917cbb 2> /dev/null
+echo
+echo "Verifying commit"
+git -C $repo verify-tag v${version}
+
+rm -rf $repo/.git
+hash=$(nix hash path $repo)
+
+(cd "$nixpkgs" && update-source-version electrs "$version" "$hash")
+sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "$scriptDir/default.nix"
+echo
+echo "electrs: $oldVersion -> $version"