summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorhappysalada <raphael@megzari.com>2022-12-09 09:46:31 -0500
committerYt <happysalada@proton.me>2022-12-09 10:10:03 -0500
commit906f39d0519b97486fa5cc7a2d27a85bbb31499e (patch)
treeaadc8f7adde74659ab5b245a87280234c23dfa5c /pkgs/applications
parenta9bb65525b376bc4ab64978771232050e12e0079 (diff)
downloadnixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.tar
nixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.tar.gz
nixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.tar.bz2
nixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.tar.lz
nixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.tar.xz
nixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.tar.zst
nixpkgs-906f39d0519b97486fa5cc7a2d27a85bbb31499e.zip
erigon: 2.30.0 -> 2.31.0
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/blockchains/erigon/default.nix (renamed from pkgs/applications/blockchains/erigon.nix)9
-rw-r--r--pkgs/applications/blockchains/erigon/pin.json5
-rwxr-xr-xpkgs/applications/blockchains/erigon/update.sh33
3 files changed, 44 insertions, 3 deletions
diff --git a/pkgs/applications/blockchains/erigon.nix b/pkgs/applications/blockchains/erigon/default.nix
index d656db3c47c..f4e5b1de652 100644
--- a/pkgs/applications/blockchains/erigon.nix
+++ b/pkgs/applications/blockchains/erigon/default.nix
@@ -1,18 +1,21 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
+let
+  pinData = lib.importJSON ./pin.json;
+in
 buildGoModule rec {
   pname = "erigon";
-  version = "2.30.0";
+  version = pinData.version;
 
   src = fetchFromGitHub {
     owner = "ledgerwatch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-s5D+Ps5S95AyNh7tt2SnTvUxNHzOothsMZA7NW3x0yM=";
+    sha256 = pinData.sha256;
     fetchSubmodules = true;
   };
 
-  vendorSha256 = "sha256-ICoThps7c4+9NQPeaASQ88YVbczJD/MgF2ldOmKjgvc=";
+  vendorSha256 = pinData.vendorSha256;
   proxyVendor = true;
 
   # Build errors in mdbx when format hardening is enabled:
diff --git a/pkgs/applications/blockchains/erigon/pin.json b/pkgs/applications/blockchains/erigon/pin.json
new file mode 100644
index 00000000000..e274f307007
--- /dev/null
+++ b/pkgs/applications/blockchains/erigon/pin.json
@@ -0,0 +1,5 @@
+{
+  "version": "2.31.0",
+  "sha256": "sha256-+qVfujPKy/HAkMOJQdHI3G1pBoYG2Lhm5BKHrvf3lv0=",
+  "vendorSha256": "sha256-XTGbwMEuLBEXP/QAR8RLRPrbvz2ReCLg4tCogbqHiHg="
+}
diff --git a/pkgs/applications/blockchains/erigon/update.sh b/pkgs/applications/blockchains/erigon/update.sh
new file mode 100755
index 00000000000..c50a7a20f29
--- /dev/null
+++ b/pkgs/applications/blockchains/erigon/update.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
+
+# TODO set to `verbose` or `extdebug` once implemented in oil
+shopt --set xtrace
+# we need failures inside of command subs to get the correct vendorSha256
+shopt --unset inherit_errexit
+
+const directory = $(dirname $0 | xargs realpath)
+const owner = "ledgerwatch"
+const repo = "erigon"
+const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
+  jq -r '.tag_name')
+const latest_version = $(echo $latest_rev | sd 'v' '')
+const current_version = $(jq -r '.version' $directory/pin.json)
+if ("$latest_version" === "$current_version") {
+  echo "$repo is already up-to-date"
+  return 0
+} else {
+  const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev" --fetch-submodules)
+  const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
+
+  jq ".version = \"$latest_version\" | \
+      .\"sha256\" = \"$tarball_hash\" | \
+      .\"vendorSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
+
+  const new_vendor_sha256 = $(nix-build -A erigon 2>&1 | \
+    tail -n 2 | \
+    head -n 1 | \
+    sd '\s+got:\s+' '')
+
+  jq ".vendorSha256 = \"$new_vendor_sha256\"" $directory/pin.json | sponge $directory/pin.json
+}