summary refs log tree commit diff
path: root/pkgs/common-updater
diff options
context:
space:
mode:
authorFrancesco Gazzetta <fgaz@fgaz.me>2020-10-19 19:57:12 +0200
committerFrancesco Gazzetta <fgaz@fgaz.me>2020-11-21 11:28:45 +0100
commit3f20319cd19cfb0583df5c02be9b1dcae3b6e65f (patch)
treed7b9cb954687bd132bdf1604077550e8034c9f4d /pkgs/common-updater
parent4d8e0f9b770dbe5187ec4b64590531c30cab237d (diff)
downloadnixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.tar
nixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.tar.gz
nixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.tar.bz2
nixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.tar.lz
nixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.tar.xz
nixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.tar.zst
nixpkgs-3f20319cd19cfb0583df5c02be9b1dcae3b6e65f.zip
unstableUpdater: init
Diffstat (limited to 'pkgs/common-updater')
-rw-r--r--pkgs/common-updater/unstable-updater.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix
new file mode 100644
index 00000000000..94cd33b9a26
--- /dev/null
+++ b/pkgs/common-updater/unstable-updater.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, writeShellScript
+, coreutils
+, git
+, nix
+, common-updater-scripts
+}:
+
+# This is an updater for unstable packages that should always use the latest
+# commit.
+{ url ? null # The git url, if empty it will be set to src.url
+}:
+
+let
+  updateScript = writeShellScript "unstable-update-script.sh" ''
+    set -ex
+
+    url="$1"
+
+    # By default we set url to src.url
+    if [[ -z "$url" ]]; then
+        url="$(${nix}/bin/nix-instantiate $systemArg --eval -E \
+                   "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.url" \
+            | tr -d '"')"
+    fi
+
+    # Get info about HEAD from a shallow git clone
+    tmpdir="$(${coreutils}/bin/mktemp -d)"
+    ${git}/bin/git clone --bare --depth=1 "$url" "$tmpdir"
+    pushd "$tmpdir"
+    commit_date="$(${git}/bin/git show -s --pretty='format:%cs')"
+    commit_sha="$(${git}/bin/git show -s --pretty='format:%H')"
+    popd
+    ${coreutils}/bin/rm -rf "$tmpdir"
+
+    # update the nix expression
+    ${common-updater-scripts}/bin/update-source-version \
+        "$UPDATE_NIX_ATTR_PATH" \
+        "unstable-$commit_date" \
+        --rev="$commit_sha"
+  '';
+
+in [ updateScript url ]
+