diff options
author | Francesco Gazzetta <fgaz@fgaz.me> | 2020-10-19 19:57:12 +0200 |
---|---|---|
committer | Francesco Gazzetta <fgaz@fgaz.me> | 2020-11-21 11:28:45 +0100 |
commit | 3f20319cd19cfb0583df5c02be9b1dcae3b6e65f (patch) | |
tree | d7b9cb954687bd132bdf1604077550e8034c9f4d /pkgs/common-updater | |
parent | 4d8e0f9b770dbe5187ec4b64590531c30cab237d (diff) | |
download | nixpkgs-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.nix | 44 |
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 ] + |