feat(packages/rebuild): improve rebuild script

This commit is contained in:
Mohammad Rafiq 2025-05-20 18:31:18 +08:00
parent aa8420c261
commit 0a071aed3d
No known key found for this signature in database
2 changed files with 28 additions and 7 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
result
*.qcow2

View file

@ -2,13 +2,32 @@
pkgs.writeShellScriptBin "rebuild" # sh
''
if [ ! -f "flake.nix" ]; then
echo "flake.nix not found in current directory. exiting..."
exit 1
echo "Error: flake.nix not found in the current directory. Exiting."
exit 1 # Indicate an error
fi
git add . && \
nixos-rebuild switch --flake . --use-remote-sudo && \
${pkgs.cowsay}/bin/cowsay -f elephant "Opening a test shell. Type exit 1 to abort and exit to commit your changes." && \
$SHELL && \
git commit -a
echo "--- building the new config... ---"
git add .
nixos-rebuild test --flake . --use-remote-sudo || {
echo "Error: nixos-rebuild switch failed. Check the output for details."
exit 1
}
echo "--- diffing... ---"
git diff HEAD --color=always --stat --patch
echo "--- opening test shell... ---"
${pkgs.cowsay}/bin/cowsay -f elephant "Entering a test shell. Type 'exit 1' to abort changes and 'exit' to commit."
PS1="Test shell> " $SHELL || {
${pkgs.cowsay}/bin/cowsay -f satanic "You aborted."
exit 1
}
echo "--- adding the built configuration to the bootloader... ---"
nixos-rebuild switch --flake . --use-remote-sudo || {
echo "Error: nixos-rebuild switch failed. Check the output for details."
exit 1
}
git commit
exit 0
''