diff options
-rwxr-xr-x | bin/__dispatch.sh | 3 | ||||
l--------- | bin/depot-nixpkgs-update | 1 | ||||
-rw-r--r-- | tools/depot-nixpkgs-update.nix | 44 |
3 files changed, 48 insertions, 0 deletions
diff --git a/bin/__dispatch.sh b/bin/__dispatch.sh index a4fa75358def..535c9b48ab9f 100755 --- a/bin/__dispatch.sh +++ b/bin/__dispatch.sh @@ -19,6 +19,9 @@ case "${TARGET_TOOL}" in depot-build) attr="tools.depot-build" ;; + depot-nixpkgs-update) + attr="tools.depot-nixpkgs-update" + ;; gerrit) attr="tools.gerrit-cli" ;; diff --git a/bin/depot-nixpkgs-update b/bin/depot-nixpkgs-update new file mode 120000 index 000000000000..8390ec9c9652 --- /dev/null +++ b/bin/depot-nixpkgs-update @@ -0,0 +1 @@ +__dispatch.sh \ No newline at end of file diff --git a/tools/depot-nixpkgs-update.nix b/tools/depot-nixpkgs-update.nix new file mode 100644 index 000000000000..2475ca2e2330 --- /dev/null +++ b/tools/depot-nixpkgs-update.nix @@ -0,0 +1,44 @@ +{ pkgs, depot, ... }: + +let + inherit (depot.nix) + getBins + ; + + stableRelease = "21.05"; + + channelsUrl = "https://channels.nixos.org"; + archiveUrl = "https://github.com/NixOS/nixpkgs/archive/"; + + bins = getBins pkgs.nix [ "nix-prefetch-url" ] + // getBins pkgs.curl [ "curl" ] + ; + +in + +pkgs.writers.writeDashBin "depot-nixpkgs-update" '' + set -e + + printSet() { + setname="$1" + shift + channel="$1" + shift + + commit="$(${bins.curl} -L "${channelsUrl}/$channel/git-revision")" + date="$(curl -i -L "${channelsUrl}/$channel/git-revision" \ + | grep ^last-modified \ + | sed 's/^last-modified: \(.\+\)\r/\1/')" + hash="$(${bins.nix-prefetch-url} --unpack --type sha256 "${archiveUrl}/$commit.tar.gz")" + + printf '%s\n' " + # Tracking $channel as of $(date --rfc-3339=date --date="$date"). + $setname = { + commit = \"$commit\"; + sha256 = \"$hash\"; + };" + } + + printSet unstableHashes nixos-unstable + printSet stableHashes nixos-${stableRelease} +'' |