From 5ac099afc4d99f0f19d96a0116d1009a751536e4 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Wed, 17 Nov 2021 13:34:55 +0300 Subject: [PATCH] Add systemd units for nixos-rebuild --- api/api-module.nix | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/api/api-module.nix b/api/api-module.nix index 565d8de..35a8ac3 100644 --- a/api/api-module.nix +++ b/api/api-module.nix @@ -75,5 +75,44 @@ in RestartSec = "5"; }; }; + # One shot systemd service to rebuild NixOS using nixos-rebuild + systemd.services.sp-nixos-rebuild = { + description = "Upgrade NixOS using nixos-rebuild"; + environment = config.nix.envVars // { + inherit (config.environment.sessionVariables) NIX_PATH; + HOME = "/root"; + } // config.networking.proxy.envVars; + path = [ pkgs.coreutils pkgs.gnutar pkgs.xz.bin pkgs.gzip pkgs.gitMinimal config.nix.package.out pkgs.nixos-rebuild ]; + serviceConfig = { + User = "root"; + ExecStart = "${pkgs.nixos-rebuild}/bin/nixos-rebuild switch"; + }; + }; + # One shot systemd service to upgrade NixOS using nixos-rebuild + systemd.services.sp-nixos-upgrade = { + description = "Upgrade NixOS using nixos-rebuild"; + environment = config.nix.envVars // { + inherit (config.environment.sessionVariables) NIX_PATH; + HOME = "/root"; + } // config.networking.proxy.envVars; + path = [ pkgs.coreutils pkgs.gnutar pkgs.xz.bin pkgs.gzip pkgs.gitMinimal config.nix.package.out pkgs.nixos-rebuild ]; + serviceConfig = { + User = "root"; + ExecStart = "${pkgs.nixos-rebuild}/bin/nixos-rebuild switch --upgrade"; + }; + }; + # One shot systemd service to rollback NixOS using nixos-rebuild + systemd.services.sp-nixos-rollback = { + description = "Rollback NixOS using nixos-rebuild"; + environment = config.nix.envVars // { + inherit (config.environment.sessionVariables) NIX_PATH; + HOME = "/root"; + } // config.networking.proxy.envVars; + path = [ pkgs.coreutils pkgs.gnutar pkgs.xz.bin pkgs.gzip pkgs.gitMinimal config.nix.package.out pkgs.nixos-rebuild ]; + serviceConfig = { + User = "root"; + ExecStart = "${pkgs.nixos-rebuild}/bin/nixos-rebuild switch --rollback"; + }; + }; }; }