From 7e45f16948a802a3810d915b315f810f83fe8900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Tue, 11 Oct 2022 13:15:50 +0200 Subject: hosts.sh: support not only devices and use screen to detach switch --- nixos/modules/generic.nix | 5 +++++ nixos/modules/nixos-system.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 nixos/modules/nixos-system.sh (limited to 'nixos') diff --git a/nixos/modules/generic.nix b/nixos/modules/generic.nix index ff635cf..fb2879c 100644 --- a/nixos/modules/generic.nix +++ b/nixos/modules/generic.nix @@ -131,6 +131,11 @@ in { ''; }) ]; + + system.extraSystemBuilderCmds = '' + substituteAll ${./nixos-system.sh} $out/bin/nixos-system + chmod +x $out/bin/nixos-system + ''; }; } diff --git a/nixos/modules/nixos-system.sh b/nixos/modules/nixos-system.sh new file mode 100644 index 0000000..7a220bb --- /dev/null +++ b/nixos/modules/nixos-system.sh @@ -0,0 +1,27 @@ +#!@shell@ +# Simple script handy to be used for activation + +while getopts "s" opt; do + case "$opt" in + s) + if [ ! -v NIXOS_SYSTEM_GNU_SCREEN ]; then + export NIXOS_SYSTEM_GNU_SCREEN=1 + exec @out@/sw/bin/screen "$0" "$@" + fi + ;; + *) + echo "Invalid argument: $1" >&2 + exit 1 + ;; + esac +done +shift $((OPTIND - 1)) + + +@out@/sw/bin/nix-env --profile /nix/var/nix/profiles/system --set '@out@' + +@out@/bin/switch-to-configuration "$@" || { + echo "Switch failed!" >&2 + read -r _ + exit 1 +} -- cgit v1.2.3