1
0
Fork 0
nixos-config/lib/update-system.nix
2021-07-05 18:19:43 +02:00

23 lines
775 B
Nix

{ pkgs, nixos-rebuild }:
let
configPath = "/etc/nixos";
in
{
update-system = pkgs.writeHaskellScript
{
name = "update-system";
bins = [ nixos-rebuild pkgs.nix-output-monitor pkgs.nvd ];
} ''
main = do
paths <- myNixPath "${configPath}"
args <- getArgs
setEnv "WITH_SECRETS" "false"
nix_build (paths ++ buildSystemParams ++ ["--no-out-link"] ++ remoteBuildParams ++ fmap toString args) &!> StdOut |> nom
setEnv "WITH_SECRETS" "true"
oldSystem <- readlink "-f" "/run/current-system" |> captureTrim
nixos_rebuild (paths ++ ["switch"] ++ fmap toString args) &!> StdOut |> nom
newSystem <- readlink "-f" "/run/current-system" |> captureTrim
nvd "diff" oldSystem newSystem
'';
}