diff --git a/pkgs/by-name/gn/gn/package.nix b/pkgs/by-name/gn/gn/package.nix index b408e835dca4..b6c90306e030 100644 --- a/pkgs/by-name/gn/gn/package.nix +++ b/pkgs/by-name/gn/gn/package.nix @@ -77,6 +77,8 @@ stdenv.mkDerivation { setupHook = ./setup-hook.sh; + passthru.updateScript = ./update.sh; + meta = { description = "Meta-build system that generates build files for Ninja"; mainProgram = "gn"; diff --git a/pkgs/by-name/gn/gn/update.sh b/pkgs/by-name/gn/gn/update.sh new file mode 100755 index 000000000000..e6a498fd2778 --- /dev/null +++ b/pkgs/by-name/gn/gn/update.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p jq curl common-updater-scripts + +set -ex + +rev=$( + curl --location "https://raw.githubusercontent.com/NixOS/nixpkgs/refs/heads/master/pkgs/applications/networking/browsers/chromium/info.json" \ + | jq -r ".chromium.deps.gn.rev" +) + +commit_time=$( + curl "https://gn.googlesource.com/gn/+/$rev?format=json" \ + | sed "s/)]}'//" \ + | jq -r ".committer.time" \ + | awk '{print $2, $3, $5, $4 $6}' +) + +commit_date=$(TZ= date --date "$commit_time" --iso-8601) +version="0-unstable-$commit_date" + +update-source-version --rev="$rev" --version-key="version" "gn" "$version"