#! /bin/sh
# ssh-deploy : nixos-config x [user@]hostname -> ()
set -xeuf

main=$1
target=$2
nixpkgs_dir=/var/nixpkgs # TODO make configurable

git_url=$(nixpkgs-url $main)
git_rev=$(nixpkgs-rev $main)

if [ "$git_url" = '' ] || [ "$git_rev" = '' ]; then
  echo "specify nixpkgs.url and nixpkgs.rev in $main !"
  exit 23
fi

filter=$(make-rsync-filter "$main")

echo "$filter" \
  | rsync -f '. -' -zvrlptD --delete-excluded ./ "$target":/etc/nixos/

ssh-fetch-git "$target" "$nixpkgs_dir" "$git_url" "$git_rev"
ssh "$target" nixos-rebuild switch \
  -I nixos-config=/etc/nixos/"$main" \
  -I nixpkgs="$nixpkgs_dir" \
  -I secrets=/etc/nixos/secrets \