24 lines
652 B
Bash
24 lines
652 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
bold=$(tput bold)
|
|
reset=$(tput sgr0)
|
|
|
|
flake="$1"
|
|
|
|
echo "${bold}Building configuration...$reset"
|
|
configuration=$(sudo nixos-rebuild dry-activate --flake "$flake" --keep-going "${@:2}")
|
|
echo "$configuration"
|
|
|
|
nix run "$flake#nixosConfigurations.$(hostname).pkgs.nvd" -- diff /run/current-system "$configuration"
|
|
|
|
read -n1 -rp "${bold}Activate new configuration? [y/N]$reset " answer
|
|
echo
|
|
|
|
if [[ $answer =~ ^[Yy]$ ]]; then
|
|
sudo nix-env --profile /nix/var/nix/profiles/system --set "$configuration"
|
|
sudo "$configuration/bin/switch-to-configuration" switch
|
|
else
|
|
echo "${bold}Not activating :($reset"
|
|
exit 1
|
|
fi
|