feat(justfile): switch away from nh #1
2 changed files with 29 additions and 13 deletions
|
@ -196,6 +196,11 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
system.activationScripts."upgrade-diff" = {
|
||||||
|
supportsDryActivation = true;
|
||||||
|
text = "${lib.getExe pkgs.nvd} --nix-bin-dir=${config.nix.package}/bin diff /run/current-system $systemConfig 1>&2";
|
||||||
|
};
|
||||||
|
|
||||||
systemd = {
|
systemd = {
|
||||||
services.NetworkManager-wait-online.enable = lib.mkForce false;
|
services.NetworkManager-wait-online.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
|
37
justfile
37
justfile
|
@ -6,31 +6,42 @@ check:
|
||||||
|
|
||||||
switch *args:
|
switch *args:
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euxo pipefail
|
set -euo pipefail
|
||||||
flake=$(nix build ".#nixosConfigurations.$(hostname).config.system.build.toplevel" --print-out-paths --no-link --keep-going)
|
configuration=$(sudo nixos-rebuild dry-activate --flake . --keep-going {{args}})
|
||||||
nvd diff /run/current-system "$flake"
|
echo $configuration
|
||||||
read -p "Activate new configuration? [y/N] " answer
|
read -n1 -p "Activate new configuration? [y/N] " answer
|
||||||
if [[ $answer =~ ^[Yy]$ ]]; then
|
if [[ $answer =~ ^[Yy]$ ]]; then
|
||||||
sudo "$flake/bin/switch-to-configuration" switch
|
sudo "$configuration/bin/switch-to-configuration" switch
|
||||||
|
else
|
||||||
|
echo "Not activating :("
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
rollback:
|
rollback:
|
||||||
@sudo -v
|
|
||||||
sudo nixos-rebuild switch --rollback
|
sudo nixos-rebuild switch --rollback
|
||||||
|
|
||||||
boot *args:
|
boot *args:
|
||||||
@sudo -v
|
sudo nixos-rebuild boot --flake . --keep-going {{args}}
|
||||||
nh os boot --no-nom --ask . -- --keep-going {{args}}
|
|
||||||
|
|
||||||
deploy system user="leo":
|
deploy system user="leo":
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euxo pipefail
|
set -euo pipefail
|
||||||
flake=$(nix eval --impure --raw --expr "(builtins.getFlake \"git+file://$PWD\").outPath")
|
flake=$(nix eval --impure --raw --expr "(builtins.getFlake \"git+file://$PWD\").outPath")
|
||||||
|
sshout=$(mktemp)
|
||||||
|
|
||||||
nix copy "$flake" --to "ssh://{{user}}@{{system}}"
|
nix copy "$flake" --to "ssh://{{user}}@{{system}}"
|
||||||
# -R/--bypass-root-check is needed because of a Git CVE regression in Nix 2.20
|
ssh -t "{{user}}@{{system}}" "sudo nixos-rebuild dry-activate --flake $flake --keep-going" | tee "$sshout"
|
||||||
# See NixOS/nix#10202, viperML/nh#200
|
configuration=$(tail -n1 "$sshout" | grep -Po "/nix/store/[\w\d\.\-]+")
|
||||||
ssh -t "{{user}}@{{system}}" "sudo flock -w 60 /dev/shm/deploy-{{system}} nix run n#nh -- os switch --no-nom -R -H {{system}} --ask $flake"
|
echo "$configuration"
|
||||||
|
rm "$sshout"
|
||||||
|
|
||||||
|
read -n1 -p "Activate new configuration? [y/N] " answer
|
||||||
|
if [[ $answer =~ ^[Yy]$ ]]; then
|
||||||
|
ssh -t "{{user}}@{{system}}" "sudo \"$configuration/bin/switch-to-configuration\" switch"
|
||||||
|
else
|
||||||
|
echo "Not activating :("
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
lint *args:
|
lint *args:
|
||||||
statix check -i flake.nix **/hardware-configuration.nix {{args}}
|
statix check -i flake.nix **/hardware-configuration.nix {{args}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue