feat(scripts/liminix): fail HARD and support root prefixes

Now that we possess the levitation technology, it's necessary to support
root prefixes for rebuild otherwise we will just overwrite our RAM disk
configuration.

Also, to avoid any issue, let's fail hard and avoid rebooting while
being in levitation for nothing.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
This commit is contained in:
Ryan Lahfa 2024-09-08 00:48:56 +02:00
parent d29deeae56
commit ed285ba79d

View file

@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -Eeuo pipefail
ssh_command=${SSH_COMMAND-ssh} ssh_command=${SSH_COMMAND-ssh}
root_prefix=${ROOT_PREFIX-/}
reboot="reboot" reboot="reboot"
@ -24,9 +26,10 @@ if [ -z "$target_host" ] ; then
fi fi
if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; then if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; then
echo systemConfiguration $toplevel echo systemConfiguration $toplevel aimed at $root_prefix
min-copy-closure $target_host $toplevel sleep 3
$ssh_command $target_host $toplevel/bin/install min-copy-closure --root "$root_prefix" $target_host $toplevel
$ssh_command $target_host "$root_prefix/$toplevel/bin/install" "$root_prefix"
case "$reboot" in case "$reboot" in
reboot) reboot)
$ssh_command $target_host "sync; source /etc/profile; reboot" $ssh_command $target_host "sync; source /etc/profile; reboot"