#!env /bin/bash
# First setup:

user=albert
read -p "Hostname:  " host;

# run as root:
sudo nix-shell -p git --run  git clone https://git.sysctl.io/albert/nix /etc/nixos/git
sudo git clone https://git.sysctl.io/albert/nix /etc/nixos/git
sudo ln -s /etc/nixos/git/flake.nix /etc/nixos/flake.nix
sudo chown -R $user:root /etc/nixos/git
sudo nixos-rebuild switch --flake '/etc/nixos#$host'
sudo mkdir /nix/var/nix/profiles/per-user/$user
echo "Host setup complete."

# as $user:
home-manager switch -b backup --flake /etc/nixos/git
source ~/.bashrc

# Import and trust the GPG key
read -p "Path to GPG Private Key:  " gpgKey
gpg --import $gpgKey
echo -e "5\ny\n" |  gpg --command-fd 0 --expert --edit-key 64F6C4EB46C4543A trust

# Setup SOPS
sudo nix-shell -p ssh-to-pgp --run "ssh-to-pgp -i /etc/ssh/ssh_host_rsa_key -o /etc/nixos/git/keys/hosts/$(host).asc"
cd /etc/nixos/git
nix-shell
sops-update secrets/secrets.yaml

# Set up ssh keys
ssh-keygen -t rsa -b 8192 -f ~/.ssh/id_rsa  -N ""
echo "" >> /etc/nixos/git/keys/ssh/keys.txt
echo "# $user@$host" >> /etc/nixos/git/keys/ssh/keys.txt
cat .ssh/id_rsa.pub >> /etc/nixos/git/keys/ssh/keys.txt


# Add all changes to git and and push
git add keys/hosts/$(host).asc
git commit -am "Setup of host: $host"
git push

echo "Complete.  Reboot to complete the config"