about summary refs log tree commit diff
path: root/tools/depot-nixpkgs-update.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tools/depot-nixpkgs-update.nix')
-rw-r--r--tools/depot-nixpkgs-update.nix44
1 files changed, 44 insertions, 0 deletions
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}
+''