teos: add update script

This commit is contained in:
Otto Sabart 2023-03-28 21:00:00 +02:00
parent 2345d94098
commit 511d699e4e
No known key found for this signature in database
GPG key ID: 823BAE99F8BE1E3C
2 changed files with 36 additions and 0 deletions

View file

@ -24,6 +24,7 @@ let
license = licenses.mit;
maintainers = with maintainers; [ seberm ];
};
updateScript = ./update.sh;
in
{
teos = rustPlatform.buildRustPackage {
@ -43,6 +44,8 @@ in
darwin.apple_sdk.frameworks.Security
];
passthru.updateScript = updateScript;
__darwinAllowLocalNetworking = true;
meta = meta // {
@ -70,6 +73,8 @@ in
darwin.apple_sdk.frameworks.SystemConfiguration
];
passthru.updateScript = updateScript;
__darwinAllowLocalNetworking = true;
meta = meta // {

View file

@ -0,0 +1,31 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils curl jq git gnupg common-updater-scripts
set -euo pipefail
# Fetch latest release, update derivation
scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
nixpkgs=$(realpath "$scriptDir"/../../../..)
oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).teos.version" | tr -d '"')
version=$(curl -s --show-error "https://api.github.com/repos/talaia-labs/rust-teos/releases/latest" | jq -r '.tag_name' | tail -c +2)
if [[ $version == $oldVersion ]]; then
echo "Already at latest version $version"
exit 0
fi
echo "New version: $version"
tmpdir=$(mktemp -d /tmp/teos.XXX)
repo="${tmpdir}/repo"
trap 'rm -rf $tmpdir' EXIT
git clone --depth 1 --branch "v${version}" -c advice.detachedHead=false 'https://github.com/talaia-labs/rust-teos' "$repo"
git -C "$repo" checkout "tags/v${version}"
rm -rf "${repo}/.git"
hashcheck=$(nix hash path "$repo")
(cd "$nixpkgs" && update-source-version teos "$version" "$hashcheck")
sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "${scriptDir}/default.nix"
echo
echo "rust-teos: $oldVersion -> $version"