Files
2026-04-17 16:42:11 +02:00

35 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep gnused jq
set -euo pipefail
cd $(dirname ${BASH_SOURCE[0]})
# Detect latest tag
latestVersion=$(curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
'https://api.github.com/repos/LPCIC/elpi/releases' | jq -r 'map(.tag_name).[0]' | sed 's/^v//')
# Detect current tag
currentVersion=$(sed -e "/ if lib.versionAtLeast ocaml.version \"4.13\" then/{n;q}" default.nix | tail -n 1 | sed 's/[[:space:]"]//g')
if [ "$latestVersion" == "$currentVersion" ]
then
echo "Already up to date"
exit 0
fi
# Get hash for latest tag
versionCommit=$(curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
'https://api.github.com/repos/LPCIC/elpi/tags' | \
jq -r "map(select(.name == \"v$latestVersion\")) | .[0] | .commit.sha")
ELPI_GIT_PREFETCH=$(nix-prefetch-url --unpack https://github.com/LPCIC/elpi/archive/${versionCommit}.tar.gz)
ELPI_GIT_HASH=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 ${ELPI_GIT_PREFETCH})
# We register the new version
sed "/fetched = coqPackages.metaFetch {/a\\ release.\"$latestVersion\".sha256 = \"$ELPI_GIT_HASH\";" -i default.nix
# We set it as default
sed "/ if lib.versionAtLeast ocaml.version \"4.13\" then/{n;d}" -i default.nix
sed "/ else if lib.versionAtLeast ocaml.version \"4.08\" then/i\\ \"$latestVersion\"" -i default.nix