1#!/usr/bin/env nix-shell
2#!nix-shell -i bash -p curl gnugrep gnused jq
3
4set -x -eu -o pipefail
5
6cd $(dirname "$0")
7
8VERSION=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
9 --silent https://api.github.com/repos/linkerd/linkerd2/releases | \
10 jq 'map(.tag_name)' | grep -v -e '-rc' | grep stable | sed 's/["|,| ]//g' | sed 's/stable-//' | sort -V -r | head -n1)
11
12SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/stable-${VERSION}.tar.gz)
13
14setKV () {
15 sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix
16}
17
18setKV version ${VERSION}
19setKV sha256 ${SHA256}
20setKV vendorHash "sha256-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=" # Necessary to force clean build.
21
22cd ../../../../../
23set +e
24VENDOR_HASH=$(nix-build --no-out-link -A linkerd 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
25set -e
26cd - > /dev/null
27
28if [ -n "${VENDOR_HASH:-}" ]; then
29 setKV vendorHash ${VENDOR_HASH}
30else
31 echo "Update failed. VENDOR_HASH is empty."
32 exit 1
33fi