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: