c3h-nixfiles/deploy.sh

27 lines
837 B
Bash
Raw Normal View History

2021-08-21 16:47:21 +00:00
#!/usr/bin/env bash
set -eo pipefail
cd "$(dirname "$0")"
if ! command -v nix-build &> /dev/null
then
echo "Nix installation could not be found. Please follow the instructions linked below."
echo "https://nixos.org/manual/nix/unstable/installation/installing-binary.html#multi-user-installation"
exit
fi
mode="${1:-switch}"
2021-10-22 21:25:50 +00:00
host="${2:-nuc}"
target="${3:-$host.c3h}"
echo "deploying $host to $target"
sleep 1
2021-08-21 16:47:21 +00:00
sources=$(nix-build nix/sources-dir.nix --no-out-link)
set -x
2021-10-22 21:25:50 +00:00
system_drv=$(nix-instantiate "<nixpkgs/nixos>" -I $sources -I "nixos-config=$PWD/hosts/$host/configuration.nix" | head -n1)
nix-copy-closure --to $target $system_drv
system=$(ssh $target "nix-store --realise $system_drv")
ssh $target "sudo nix-env -p /nix/var/nix/profiles/system -i $system && /nix/var/nix/profiles/system/bin/switch-to-configuration $mode"