#!/bin/sh
program=/home/m/michael/bin/rsync_src2hostdir

[ $# -eq 2 ] || {
	1>&2 echo "usage: $0 src host:directory"
	exit 1
}
[ -n "$1" ] || {
	1>&2 echo "src cannot be null: usage: $0 src host:directory"
	exit 1
}
[ -n "$2" ] || {
	1>&2 echo "host:directory cannot be null: usage: $0 src host:directory"
	exit 1
}
[ -e "$1" ] || {
	1>&2 echo "$0: src $1 doesn't exist, aborting"
	exit 1
}

if [ x$(id -u) = x0 ]; then
	[ -e "$1" ] || {
		1>&2 echo "$0: src $1 doesn't exist, aborting"
		exit 1
	}
else
	# make our src absolute before cd /
	case x"$1" in
		x/*)
			# already absolute
			src="$1"
		;;
		*)
			src=$(pwd -P)/"$1" || exit
		;;
	esac
	set -- "$src" "$2"; unset src
	cd / &&
	{
		exec sudo su - root -c "LC_ALL=C SSH_AUTH_SOCK=$SSH_AUTH_SOCK $program $1 $2" ||
		exit
	}
fi

src="$1"
hostdir="$2"
set --

#exit 1

# ssh -atx "$host" 'hostname; id'; exit

# set -x
rsync \
	--archive \
	--acls \
	--delete-before \
	--xattrs \
	--hard-links \
	--numeric-ids \
	--sparse \
	--rsh='ssh -aTx -o BatchMode=yes ' \
	--checksum \
	--partial \
	--ignore-times \
	--compress-level=9 \
	--filter='-, /tmp' \
	--filter='-, /tmp/***' \
	--filter='-, /var/local/pub/mirrored/cdimage.debian.org' \
	--filter='-, /var/local/pub/mirrored/cdimage.debian.org/***' \
	--filter='-, /var/local/tower' \
	--filter='-, /var/local/tower/***' \
	--filter='-, /dev' \
	--filter='-, /dev/***' \
	--filter='-, /lib/init/rw' \
	--filter='-, /lib/init/rw/***' \
	--filter='-, /proc' \
	--filter='-, /proc/***' \
	--filter='-, /sys' \
	--filter='-, /sys/***' \
	--filter='-, /var/lib/named/dev/null' \
	--filter='-, /var/lib/named/dev/null/***' \
	--filter='-, /var/lib/named/dev/random' \
	--filter='-, /var/lib/named/dev/random/***' \
	--quiet \
	"$src" "$hostdir"
#	--delete-excluded \
#	--relative \
#	--one-file-system \
#	--verbose
#	--bwlimit=KBPS
#	--inplace
#	--compress
