From d33e6eb1f3f0da85a7190a04df6a58885e087868 Mon Sep 17 00:00:00 2001 From: Swarsel Date: Thu, 19 Dec 2024 00:30:34 +0100 Subject: [PATCH] feat: finish initial local installer script --- SwarselSystems.org | 21 ++++++++++++++++++--- scripts/swarsel-install.sh | 19 +++++++++++++++++-- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/SwarselSystems.org b/SwarselSystems.org index f4a1aa9..c932682 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -2976,7 +2976,7 @@ This program sets up a new NixOS host. } #+end_src -**** install +**** swarsel-install This program sets up a new NixOS host. @@ -3035,16 +3035,31 @@ This program sets up a new NixOS host. cd /home/"$target_user" - if [ ! -d /home"$target_user"/.dotfiles ]; then + if [ ! -d /home/"$target_user"/.dotfiles ]; then green "Cloning repository from GitHub" git clone https://github.com/Swarsel/.dotfiles.git fi + local_keys=$(ssh-add -L || true) + pub_key=$(cat /home/"$target_user"/.dotfiles/secrets/keys/ssh/nbl-imba-2.pub) + read -ra pub_arr <<< "$pub_key" + cd .dotfiles + if [[ $local_keys != *"${pub_arr[1]}"* ]]; then + yellow "The ssh key for this configuration is not available." + green "Adjusting flake.nix so that the configuration is buildable" + sed -i '/nix-secrets = {/,/^[[:space:]]*};/d' flake.nix + git add flake.nix + fi sudo nixos-generate-config --dir /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/ git add /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/hardware-configuration.nix green "Installing flake $target_flake" - sudo nixos-rebuild --show-trace --flake .#"$target_flake" --keep-going switch + sudo nixos-rebuild --show-trace --flake .#"$target_flake" boot + yellow "Please keep in mind that this is only a demo of the configuration. Things might break unexpectedly." + git restore --staged /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/hardware-configuration.nix + git restore /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/hardware-configuration.nix + git restore --staged /home/"$target_user"/.dotfiles/flake.nix + git restore /home/"$target_user"/.dotfiles/flake.nix #+end_src diff --git a/scripts/swarsel-install.sh b/scripts/swarsel-install.sh index 3baf58f..413da9e 100644 --- a/scripts/swarsel-install.sh +++ b/scripts/swarsel-install.sh @@ -52,13 +52,28 @@ done cd /home/"$target_user" -if [ ! -d /home"$target_user"/.dotfiles ]; then +if [ ! -d /home/"$target_user"/.dotfiles ]; then green "Cloning repository from GitHub" git clone https://github.com/Swarsel/.dotfiles.git fi +local_keys=$(ssh-add -L || true) +pub_key=$(cat /home/"$target_user"/.dotfiles/secrets/keys/ssh/nbl-imba-2.pub) +read -ra pub_arr <<< "$pub_key" + cd .dotfiles +if [[ $local_keys != *"${pub_arr[1]}"* ]]; then + yellow "The ssh key for this configuration is not available." + green "Adjusting flake.nix so that the configuration is buildable" + sed -i '/nix-secrets = {/,/^[[:space:]]*};/d' flake.nix + git add flake.nix +fi sudo nixos-generate-config --dir /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/ git add /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/hardware-configuration.nix green "Installing flake $target_flake" -sudo nixos-rebuild --show-trace --flake .#"$target_flake" --keep-going switch +sudo nixos-rebuild --show-trace --flake .#"$target_flake" boot +yellow "Please keep in mind that this is only a demo of the configuration. Things might break unexpectedly." +git restore --staged /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/hardware-configuration.nix +git restore /home/"$target_user"/.dotfiles/hosts/nixos/"$target_flake"/hardware-configuration.nix +git restore --staged /home/"$target_user"/.dotfiles/flake.nix +git restore /home/"$target_user"/.dotfiles/flake.nix