Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p coreutils curl gawk gnused nix-prefetch 3 4set -euo pipefail 5 6ROOT="$(dirname "$(readlink -f "$0")")" 7DRV_BASE=package.nix 8NIX_DRV="$ROOT/$DRV_BASE" 9if [[ ! -f "$NIX_DRV" ]]; then 10 echo "ERROR: cannot find $DRV_BASE in $ROOT" 11 exit 1 12fi 13 14function retrieve_latest_version () { 15 curl https://www.yourkit.com/java/profiler/download/ \ 16 | grep -Eo '(Version|Build): ([a-z0-9#.-])+' \ 17 | awk '{ print $2 }' \ 18 | tr -d '\n' \ 19 | sed 's/#/-b/' 20} 21 22function calc_hash () { 23 local version=$1 24 local url=$2 25 nix-prefetch --option extra-experimental-features flakes \ 26 "{ stdenv, fetchzip }: 27stdenv.mkDerivation { 28 pname = \"yourkit-java-binary\"; 29 version = \"$version\"; 30 src = fetchzip { 31 url = \"$url\"; 32 }; 33}" 34} 35 36function update_hash () { 37 local arch=$1 38 local version=$2 39 local date=$(echo $version | sed 's/-.*//') 40 local url=https://download.yourkit.com/yjp/$date/YourKit-JavaProfiler-$version-$arch.zip 41 local hash=$(calc_hash $version $url) 42 sed -i -e "s|^.*$arch.*=.*\"sha256-.*$| $arch = \"$hash\";|" $NIX_DRV 43} 44 45version=$(retrieve_latest_version) 46sed -i -e "s|^.*version.*=.*\".*$| version = \"$version\";|" $NIX_DRV 47for arch in arm64 x64; do 48 update_hash $arch $version 49done 50 51# Local variables: 52# mode: shell-script 53# eval: (sh-set-shell "bash") 54# End: