teos: add update script

+36
+5
pkgs/applications/blockchains/teos/default.nix
··· 24 license = licenses.mit; 25 maintainers = with maintainers; [ seberm ]; 26 }; 27 in 28 { 29 teos = rustPlatform.buildRustPackage { ··· 42 buildInputs = lib.optionals stdenv.isDarwin [ 43 darwin.apple_sdk.frameworks.Security 44 ]; 45 46 __darwinAllowLocalNetworking = true; 47 ··· 69 ] ++ lib.optionals stdenv.isDarwin [ 70 darwin.apple_sdk.frameworks.SystemConfiguration 71 ]; 72 73 __darwinAllowLocalNetworking = true; 74
··· 24 license = licenses.mit; 25 maintainers = with maintainers; [ seberm ]; 26 }; 27 + updateScript = ./update.sh; 28 in 29 { 30 teos = rustPlatform.buildRustPackage { ··· 43 buildInputs = lib.optionals stdenv.isDarwin [ 44 darwin.apple_sdk.frameworks.Security 45 ]; 46 + 47 + passthru.updateScript = updateScript; 48 49 __darwinAllowLocalNetworking = true; 50 ··· 72 ] ++ lib.optionals stdenv.isDarwin [ 73 darwin.apple_sdk.frameworks.SystemConfiguration 74 ]; 75 + 76 + passthru.updateScript = updateScript; 77 78 __darwinAllowLocalNetworking = true; 79
+31
pkgs/applications/blockchains/teos/update.sh
···
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i bash -p coreutils curl jq git gnupg common-updater-scripts 3 + set -euo pipefail 4 + 5 + # Fetch latest release, update derivation 6 + scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd) 7 + nixpkgs=$(realpath "$scriptDir"/../../../..) 8 + 9 + oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).teos.version" | tr -d '"') 10 + version=$(curl -s --show-error "https://api.github.com/repos/talaia-labs/rust-teos/releases/latest" | jq -r '.tag_name' | tail -c +2) 11 + 12 + if [[ $version == $oldVersion ]]; then 13 + echo "Already at latest version $version" 14 + exit 0 15 + fi 16 + echo "New version: $version" 17 + 18 + tmpdir=$(mktemp -d /tmp/teos.XXX) 19 + repo="${tmpdir}/repo" 20 + trap 'rm -rf $tmpdir' EXIT 21 + 22 + git clone --depth 1 --branch "v${version}" -c advice.detachedHead=false 'https://github.com/talaia-labs/rust-teos' "$repo" 23 + git -C "$repo" checkout "tags/v${version}" 24 + 25 + rm -rf "${repo}/.git" 26 + hashcheck=$(nix hash path "$repo") 27 + 28 + (cd "$nixpkgs" && update-source-version teos "$version" "$hashcheck") 29 + sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "${scriptDir}/default.nix" 30 + echo 31 + echo "rust-teos: $oldVersion -> $version"