Unverified Commit 6c3565c9 authored by Phillip Cloud's avatar Phillip Cloud
Browse files

duckdb: fix update script to use nix-prefetch-github

parent 63f8b426
Loading
Loading
Loading
Loading
+13 −30
Original line number Diff line number Diff line
#!/usr/bin/env nix-shell
#!nix-shell --pure -i bash -p cacert curl jq moreutils nix-prefetch
#!nix-shell -i bash -p cacert jq git moreutils nix nix-prefetch-github
# shellcheck shell=bash

set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"

nixpkgs=$(
  while [[ ! -e .git ]]; do
    [[ ${PWD} != / ]] || exit 1
    cd ..
  done
  echo "${PWD}"
)

repo=duckdb
owner=duckdb

@@ -21,34 +13,25 @@ msg() {
}

json_get() {
  jq -r "$1" < 'versions.json'
  jq -r "$1" < ./versions.json
}

json_set() {
  jq --arg x "$2" "$1 = \$x" < 'versions.json' | sponge 'versions.json'
  jq --arg x "$2" "$1 = \$x" < ./versions.json | sponge 'versions.json'
}

get_latest() {
  curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s \
    "https://api.github.com/repos/${owner}/${repo}/releases/latest" | jq -r .tag_name
}

get_sha() {
  curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s \
    "https://api.github.com/repos/${owner}/${repo}/git/ref/tags/$1" | jq -r .object.sha
  gh release --repo "${owner}/${repo}" list \
    --exclude-pre-releases \
    --limit 1 \
    --json tagName \
    --jq '.[].tagName'
}

tag=$(get_latest)
version=${tag/v/}

[[ ${version} == $(json_get .version) ]] && {
  msg "${version} is up to date"
  exit 0
}
tag="$(get_latest | sed 's/^v//g')"

sha=$(get_sha "${tag}")
sri=$(nix-prefetch -I nixpkgs="${nixpkgs}" -E "duckdb.overrideAttrs { version = \"${version}\"; }")
json=$(nix-prefetch-github "${owner}" "${repo}" --rev "v${tag}")

json_set ".version" "${version}"
json_set ".rev" "${sha}"
json_set ".hash" "${sri}"
json_set ".version" "${tag}"
json_set ".rev" "$(jq -r '.rev' <<< "${json}")"
json_set ".hash" "$(jq -r '.hash' <<< "${json}")"