diff --git a/packages/sysupdate/default.nix b/packages/sysupdate/default.nix new file mode 100644 index 0000000..af0df14 --- /dev/null +++ b/packages/sysupdate/default.nix @@ -0,0 +1,25 @@ +{ + pkgs, + ... +}: + +pkgs.writeShellApplication { + name = "sysupdate"; + + runtimeInputs = with pkgs; [ + nix-output-monitor nixos-rebuild home-manager + ]; + + text = '' + NIXCONF="''${NIXCONF:-.}" + echo Building config from flake at: "$NIXCONF" 1>&2 + [[ "''${1:-}" == "home" ]] && \ + home-manager switch -L --flake "$NIXCONF" |& nom && \ + exit 0 + [ "$EUID" -eq 0 ] && \ + nixos-rebuild switch --log-format internal-json -v --flake "$NIXCONF" |& nom --json && \ + exit 0 + echo Please rerun as root. 1>&2 + exit 1 + ''; +} diff --git a/shells/sysupdate/default.nix b/shells/sysupdate/default.nix deleted file mode 100644 index 2183a70..0000000 --- a/shells/sysupdate/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - pkgs, - inputs, - ... -}: - -pkgs.mkShell { - packages = with pkgs; [ - nix-output-monitor nixos-rebuild home-manager - ]; - - NIXCONF = inputs.self; - - shellHook = '' - alias sysupdate-nixos='sudo echo -n; sudo nixos-rebuild switch --log-format internal-json -v --flake "$NIXCONF" |& nom --json' - alias sysupdate-home='home-manager switch -L --flake "$NIXCONF" |& nom' - echo System Update Shell for flake at $NIXCONF - echo Run 'sysupdate-nixos' to update system, - echo then 'sysupdate-home' to update user profile. - ''; -}