#! /usr/bin/env sh set -e base_dir="$(git rev-parse --show-toplevel)" user="${1-$USER}" hosts="${2-server2 server3}" branch="${3-main}" for host in $hosts; do echo "Updating '$user@$host.vhack.eu' ..." new_system="$(nix build ".#nixosConfigurations.$host.config.system.build.toplevel" --no-link --print-out-paths)" printf "Copying closure ..\n" nix-copy-closure "$user@$host.vhack.eu" "$new_system" printf "Deploying remote side script ..\n" scp "$base_dir/scripts/update_hosts.remote" "$user@$host.vhack.eu:update_host.remote" printf "Executing remote side script ..\n" ssh -t "$user@$host.vhack.eu" "chmod +x update_host.remote; ./update_host.remote '$branch'" done # vim: ft=sh