diff options
author | tv <tv@shackspace.de> | 2015-05-21 01:56:08 +0200 |
---|---|---|
committer | tv <tv@shackspace.de> | 2015-05-21 01:56:08 +0200 |
commit | 36670f3e1cccad579b994a29320eeb8e287803b7 (patch) | |
tree | 484cb2c1075cdcabe8020ca40704f4d68f2b2fed /bin/ssh-deploy | |
parent | b95a514bcced00af77ae4adab77326dba9ab4c36 (diff) |
sh: functions -> bin/
Diffstat (limited to 'bin/ssh-deploy')
-rwxr-xr-x | bin/ssh-deploy | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bin/ssh-deploy b/bin/ssh-deploy new file mode 100755 index 000000000..fe50677df --- /dev/null +++ b/bin/ssh-deploy @@ -0,0 +1,26 @@ +#! /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 \ |