Refactored ncli to rebuild boot first, and then switch to new configuration after.

This commit is contained in:
2026-05-29 11:13:35 +02:00
parent 134fc441a5
commit dbf7c1cd2e

View File

@ -18,15 +18,21 @@ in rec {
${rebuild_logic} ${rebuild_logic}
echo -e "Starting NixOS rebuild for current host: ${host} on generation: $YELLOW$geno$NOCOLOR" echo -e "Starting NixOS rebuild for current host: ${host} on generation: $YELLOW$geno$NOCOLOR"
# Step 1: Build the configuration and safely update the bootloader first
set +e set +e
sudo nixos-rebuild switch --flake . sudo nixos-rebuild boot --flake .
_rebuild_exit=$? _rebuild_exit=$?
set -e set -e
if [ "$_rebuild_exit" -eq 0 ]; then if [ "$_rebuild_exit" -eq 0 ]; then
echo " Rebuild finished successfully for ${host}" echo " Rebuild and bootloader update finished successfully for ${host}"
# Step 2: Now that boot entries are safe, activate the system live
echo "Activating new configuration..."
sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch
if [ -n "$current" ]; then if [ -n "$current" ]; then
sudo /run/current-system/specialisation/"$current"/bin/switch-to-configuration test sudo /nix/var/nix/profiles/system/specialisation/"$current"/bin/switch-to-configuration test
else else
echo "No specialization tag found, staying on default system." echo "No specialization tag found, staying on default system."
fi fi
@ -109,15 +115,21 @@ in rec {
echo "Rebuilding system... Staying on current specialization" echo "Rebuilding system... Staying on current specialization"
fi fi
# Step 1: Build the configuration and safely update the bootloader first
set +e set +e
sudo nixos-rebuild switch --flake . sudo nixos-rebuild boot --flake .
_rebuild_exit=$? _rebuild_exit=$?
set -e set -e
if [ "$_rebuild_exit" -eq 0 ]; then if [ "$_rebuild_exit" -eq 0 ]; then
echo " Update and rebuild finished successfully for ${host}" echo " Update, rebuild and bootloader update finished successfully for ${host}"
# Step 2: Now that boot entries are safe, activate the system live
echo "Activating new configuration..."
sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch
if [ -n "$current" ]; then if [ -n "$current" ]; then
sudo /run/current-system/specialisation/"$current"/bin/switch-to-configuration test sudo /nix/var/nix/profiles/system/specialisation/"$current"/bin/switch-to-configuration test
else else
echo "No specialization tag found, staying on default system." echo "No specialization tag found, staying on default system."
fi fi