X-Git-Url: http://git.scottworley.com/auto-upgrade-with-pinch/blobdiff_plain/8569b9651b5cbfc994362820a9fe298badd40068..d094493528a73ca76e071cf381490d9e7d27423a:/modules/auto-upgrade.nix?ds=inline diff --git a/modules/auto-upgrade.nix b/modules/auto-upgrade.nix index b493ac0..2326ecc 100644 --- a/modules/auto-upgrade.nix +++ b/modules/auto-upgrade.nix @@ -40,7 +40,24 @@ in { nixpkgs.overlays = [ (import ../overlays/keyedgit.nix) (import ../overlays/pinch.nix) + (self: super: { + auto-upgrade = super.writeShellScriptBin "auto-upgrade" '' + flock /run/auto-upgrade-with-pinch ${super.writeShellScript "auto-upgrade-with-lock-held" '' + set -e + ( + cd /etc/nixos + ${self.keyedgit cfg.key}/bin/git pull --ff-only --verify-signatures + ${self.pinch}/bin/pinch update channels + ) + + ${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch --no-build-output + ''} + ''; + }) ]; + + environment.systemPackages = [ pkgs.auto-upgrade ]; + systemd.services.nixos-upgrade = { description = "NixOS Upgrade"; restartIfChanged = false; @@ -58,7 +75,6 @@ in { gitMinimal gnutar gzip - pinch xz.bin ]; @@ -70,13 +86,7 @@ in { # intervene either to fix the problem or disable automatic updates. sleep 2h - ( - cd /etc/nixos - ${pkgs.keyedgit cfg.key}/bin/git pull --ff-only --verify-signatures - pinch update channels - ) - - ${config.system.build.nixos-rebuild}/bin/nixos-rebuild switch --no-build-output + ${pkgs.auto-upgrade}/bin/auto-upgrade ''; startAt = cfg.dates;