diff --git a/.gitignore b/.gitignore index 325d16a..e10b0a5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,3 @@ # Local configuration local/ *.local.nix - -# Package updates -/packages/*.cmp -/*.log -/update-git-commits.txt diff --git a/default.nix b/default.nix deleted file mode 100644 index 851ad1b..0000000 --- a/default.nix +++ /dev/null @@ -1,2 +0,0 @@ -# Used by ./tasks/update -{}: import { overlays = [ (import ./common/packages.nix) ]; } diff --git a/tasks/update b/tasks/update index 1200937..8a9fffe 100755 --- a/tasks/update +++ b/tasks/update @@ -1,12 +1,24 @@ #!/usr/bin/env bash # See https://discourse.nixos.org/t/25274 +set -Eeu root="$(readlink --canonicalize -- "$(dirname -- "$0")/..")" -nixpkgs="$(nix-instantiate --eval --expr '')" -exec nix-shell "$nixpkgs/maintainers/scripts/update.nix" \ +# Mock nixpkgs +trap 'rm -f "$root/default.nix"' EXIT; cat > "$root/default.nix" << NIX +{}: import { overlays = [ (import ./common/packages.nix) ]; } +NIX + +# Run update scripts +nixpkgs="$(nix-instantiate --eval --expr '')" +nix-shell "$nixpkgs/maintainers/scripts/update.nix" \ --arg include-overlays "(import $root { }).overlays" \ --arg predicate "( let prefix = \"$root/packages/\"; prefixLen = builtins.stringLength prefix; in (_: p: (builtins.substring 0 prefixLen p.meta.position) == prefix) )" + +# Clean up +if [[ -f "$root/update-git-commits.txt" ]]; then + cat "$root/update-git-commits.txt" && rm "$root/update-git-commits.txt" +fi