about summary refs log tree commit diff
path: root/pkgs/by-name/yo/yourkit-java/update.sh
blob: 0b95732f6b74a0aa74981b7f438d1cf5e35f3d2e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils curl gawk gnused nix-prefetch

set -euo pipefail

ROOT="$(dirname "$(readlink -f "$0")")"
DRV_BASE=package.nix
NIX_DRV="$ROOT/$DRV_BASE"
if [[ ! -f "$NIX_DRV" ]]; then
  echo "ERROR: cannot find $DRV_BASE in $ROOT"
  exit 1
fi

function retrieve_latest_version () {
    curl https://www.yourkit.com/java/profiler/download/ \
        | grep -Eo '(Version|Build): ([a-z0-9#.-])+' \
        | awk '{ print $2 }' \
        | tr -d '\n' \
        | sed 's/#/-b/'
}

function calc_hash () {
    local version=$1
    local url=$2
    nix-prefetch --option extra-experimental-features flakes \
                 "{ stdenv, fetchzip }:
stdenv.mkDerivation {
  pname = \"yourkit-java-binary\";
  version = \"$version\";
  src = fetchzip {
    url = \"$url\";
  };
}"
}

function update_hash () {
    local arch=$1
    local version=$2
    local date=$(echo $version | sed 's/-.*//')
    local url=https://download.yourkit.com/yjp/$date/YourKit-JavaProfiler-$version-$arch.zip
    local hash=$(calc_hash $version $url)
    sed -i -e "s|^.*$arch.*=.*\"sha256-.*$|    $arch = \"$hash\";|" $NIX_DRV
}

version=$(retrieve_latest_version)
sed -i -e "s|^.*version.*=.*\".*$|  version = \"$version\";|" $NIX_DRV
for arch in arm64 x64; do
    update_hash $arch $version
done

# Local variables:
# mode: shell-script
# eval: (sh-set-shell "bash")
# End: