Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p curl gnused nurl xq-xml 3 4set -eu 5 6ROOT="$(dirname "$(readlink -f "$0")")" 7NIX_DRV="$ROOT/package.nix" 8if [ ! -f "$NIX_DRV" ]; then 9 echo "ERROR: cannot find default.nix in $ROOT" 10 exit 1 11fi 12 13fetch_linux() { 14 VER="$1" 15 ARCH="$2" 16 URL="https://cache.agilebits.com/dist/1P/op2/pkg/v${VER}/op_${ARCH}_v${VER}.zip" 17 nurl --hash --expr "(import <nixpkgs> { }).fetchzip { url = \"$URL\"; stripRoot = false; }" 18} 19 20fetch_darwin() { 21 VER="$1" 22 URL="https://cache.agilebits.com/dist/1P/op2/pkg/v${VER}/op_apple_universal_v${VER}.pkg" 23 nurl --hash --expr "(import <nixpkgs> { }).fetchurl { url = \"$URL\"; }" 24} 25 26replace_sha() { 27 sed -i "s|\"$1\" \"sha256-.\{44\}\"|\"$1\" \"$2\"|" "$NIX_DRV" 28} 29 30CLI_VERSION="$(curl -Ls https://app-updates.agilebits.com/product_history/CLI2 | xq -q 'h3' | head -n1)" 31 32CLI_LINUX_AARCH64_SHA256=$(fetch_linux "$CLI_VERSION" "linux_arm64") 33CLI_LINUX_I686_SHA256=$(fetch_linux "$CLI_VERSION" "linux_386") 34CLI_LINUX_X64_SHA256=$(fetch_linux "$CLI_VERSION" "linux_amd64") 35CLI_DARWIN_UNIVERSAL_SHA256=$(fetch_darwin "$CLI_VERSION") 36 37sed -i "s/version = \".*\"/version = \"$CLI_VERSION\"/" "$NIX_DRV" 38 39replace_sha "linux_arm64" "$CLI_LINUX_AARCH64_SHA256" 40replace_sha "linux_386" "$CLI_LINUX_I686_SHA256" 41replace_sha "linux_amd64" "$CLI_LINUX_X64_SHA256" 42replace_sha "apple_universal" "$CLI_DARWIN_UNIVERSAL_SHA256"