Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 24.05-beta 39 lines 1.2 kB view raw
1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p curl gnused nix-prefetch jq 3 4set -euo pipefail 5URL="https://github.com/fable-compiler/fable" 6PKG="Fable" 7ROOT="$(dirname "$(readlink -f "$0")")" 8NIX_DRV="$ROOT/default.nix" 9if [ ! -f "$NIX_DRV" ]; then 10 echo "ERROR: cannot find default.nix in $ROOT" 11 exit 1 12fi 13 14TMP="$(mktemp -d)" 15clean_up() { 16 rm -rf "$TMP" 17} 18trap clean_up EXIT SIGINT SIGTERM 19PACKAGES="$TMP/packages" 20SRC_RW="$TMP/src" 21 22mkdir -p $SRC_RW 23mkdir -p $PACKAGES 24 25 26VER=$(curl -s "https://api.github.com/repos/fable-compiler/fable/releases/latest" | jq -r .tag_name | grep -oP '\d+\.\d+\.\d+' ) 27 28CURRENT_VER=$(grep -oP '(?<=version = ")[^"]+' "$NIX_DRV") 29if [[ "$CURRENT_VER" == "$VER" ]]; then 30 echo "$PKG is already up to date: $CURRENT_VER" 31 exit 32fi 33 34 35NUGET_URL="$(curl -f "https://api.nuget.org/v3/index.json" | jq --raw-output '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')$PKG/$VER/$PKG.$VER.nupkg" 36HASH=$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url "$NUGET_URL")") 37 38sed -i "s/version = \".*\"/version = \"$VER\"/" "$NIX_DRV" 39sed -i "s#nugetSha256 = \"sha256-.\{44\}\"#nugetSha256 = \"$HASH\"#" "$NIX_DRV"