From 012200a35727ce375d1edeb28f15f59da4ec2efb Mon Sep 17 00:00:00 2001 From: t4ccer Date: Wed, 25 Jun 2025 14:07:42 +0200 Subject: [PATCH] measureme: add update script --- pkgs/by-name/me/measureme/package.nix | 2 ++ pkgs/by-name/me/measureme/update.sh | 31 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 pkgs/by-name/me/measureme/update.sh diff --git a/pkgs/by-name/me/measureme/package.nix b/pkgs/by-name/me/measureme/package.nix index 4a0e426d3f6f..4826bbc0384a 100644 --- a/pkgs/by-name/me/measureme/package.nix +++ b/pkgs/by-name/me/measureme/package.nix @@ -21,6 +21,8 @@ rustPlatform.buildRustPackage rec { ln -s ${./Cargo.lock} Cargo.lock ''; + passthru.updateScript = ./update.sh; + meta = with lib; { description = "Support crate for rustc's self-profiling feature"; homepage = "https://github.com/rust-lang/measureme"; diff --git a/pkgs/by-name/me/measureme/update.sh b/pkgs/by-name/me/measureme/update.sh new file mode 100755 index 000000000000..f8fa112f66d5 --- /dev/null +++ b/pkgs/by-name/me/measureme/update.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nix jq gnused curl nix-prefetch-git cargo + +set -eu -o pipefail + +package_dir="$(dirname "${BASH_SOURCE[0]}")" + +echo "Fetching latest version" +version=$(curl -sfL ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} https://api.github.com/repos/rust-lang/measureme/releases/latest | jq -r '.tag_name') + +echo "Latest version is $version" +if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then + echo "Already up to date!" + exit 0 +fi + +echo "Fetching source hash" +hash="$(nix-prefetch-git https://github.com/rust-lang/measureme.git --quiet --rev "refs/tags/$version" | jq -r '.hash')" + +tmp=$(mktemp -d) +trap "rm -rf $tmp" EXIT + +git clone --depth 1 --branch "$version" https://github.com/rust-lang/measureme.git "$tmp" +pushd "$tmp" +echo "Generating Cargo.lock" +cargo update +cp "Cargo.lock" "$package_dir/Cargo.lock" +popd + +sed -i "s#hash = \".*\";#hash = \"$hash\";#g" "$package_dir/package.nix" +sed -i "s#version = \".*\";#version = \"$version\";#g" "$package_dir/package.nix"