X-Git-Url: http://git.scottworley.com/auto-upgrade-with-pinch/blobdiff_plain/4acf153c79292b2e2e7c8f2cafdbdd0d076b97a3..fae44c38c483a1ab6928c28b3c58e45034582a4b:/modules/auto-upgrade.nix diff --git a/modules/auto-upgrade.nix b/modules/auto-upgrade.nix index 8bf21aa..aabb0e2 100644 --- a/modules/auto-upgrade.nix +++ b/modules/auto-upgrade.nix @@ -25,13 +25,16 @@ let } } - # Update channels + # Fetch updates ( cd /etc/nixos - ${pkgs.keyedgit cfg.key}/bin/git pull --ff-only --verify-signatures - ${pkgs.pinch}/bin/pinch update channels + ${pkgs.git}/bin/git fetch + PATH="${pkgs.keyedgit cfg.keys}/bin:$PATH" ${pkgs.polite-merge}/bin/polite-merge --ff-only --verify-signatures ) + # Update channels + ${pkgs.pinch}/bin/pinch update /etc/nixos/channels + # Build in_tmpdir ${config.system.build.nixos-rebuild}/bin/nixos-rebuild build as_user nix-build --no-out-link '' -A ${ @@ -71,11 +74,12 @@ in { ''; }; - key = mkOption { + keys = mkOption { type = types.path; description = '' - GPG key that signs updates. Updates are only merged if the commit - at the tip of the remote branch is signed with this key. + File containing GPG keys that sign updates. Updates are only merged + if the commit at the tip of the remote branch is signed with one of + these keys. ''; }; @@ -135,6 +139,7 @@ in { nixpkgs.overlays = [ (import ../overlays/keyedgit.nix) (import ../overlays/pinch.nix) + (import ../overlays/polite-merge.nix) (self: super: { auto-upgrade = super.writeShellScriptBin "auto-upgrade" '' /run/wrappers/bin/sudo ${auto-upgrade-script}