35 lines
1.4 KiB
Bash
Executable File
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
|