24 lines
800 B
Nix
24 lines
800 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"
|
|
nom_build (paths ++ buildSystemParams ++ ["--no-out-link"] ++ remoteBuildParams ++ fmap toString args)
|
|
setEnv "WITH_SECRETS" "true"
|
|
oldSystem <- readlink "-f" "/run/current-system" |> captureTrim
|
|
nixos_rebuild (paths ++ ["switch", "--no-flake"] ++ fmap toString args) &!> StdOut |> nom
|
|
newSystem <- readlink "-f" "/run/current-system" |> captureTrim
|
|
nvd "diff" oldSystem newSystem
|
|
'';
|
|
}
|