#! /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 \