#!/usr/bin/env bash set -o errexit set -o errtrace # set -o nounset debug=echo if [ "x" == "x$2" ] then echo "usage: $0 " exit 1 fi nixanywhere=~/nixos/nixos-anywhere nixsrc=~/nixos ip="${1}" host="${2}" if [ ! -f "${nixsrc}/hosts/${host}/default.nix" ] then echo "Please set up ${nixsrc}/hosts/${host}/default.nix before running" exit 1 fi ${debug} cd "${nixanywhere}" ${debug} ssh-keygen -R "${ip}" ${debug} nix run github:nix-community/nixos-anywhere -- --flake .#${host} root@"${ip}" ${debug} cd "${nixsrc}" ${debug} ssh-keygen -R "${ip}" ${debug} ssh root@"${ip}" nixos-generate-config ${debug} scp root@"${ip}":/etc/nixos/hardware-configuration.nix hosts/${host}/hardware-configuration.nix ${debug} git add hosts/${host}/hardware-configuration.nix ${debug} nixos-rebuild switch --flake .#${host} --target-host "root@"${ip}"" ${debug} rsync -av ~/.ssh ~/bin don@"${ip}":