summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlocalsyncthis19
1 files changed, 15 insertions, 4 deletions
diff --git a/localsyncthis b/localsyncthis
index c1c0346..99b68f3 100755
--- a/localsyncthis
+++ b/localsyncthis
@@ -79,17 +79,28 @@ fi
while [ -n "$workdir" ]; do
for host in $hosts; do
+
thisdir="$localdir$workdir"
thatdir="$remotedir$workdir"
+ shellmagic=""
+
+ if [ -z "$localdir" ] && echo "$host" | grep -q '@'; then
+ relativeworkdir=$(echo "$workdir" | sed "s|^$HOME/\?||")
+ if [ "$workdir" != "$relativeworkdir" ]; then
+ thisdir="$workdir"
+ thatdir="$relativeworkdir"
+ shellmagic="~/"
+ fi
+ fi
case $action in
download)
- rsync --rsh="ssh $ssh_opts" $rsync_opts "$host:'$thatdir/'" "$thisdir"
- [ $V ] && echo rsync --rsh="ssh $ssh_opts" $rsync_opts "$host:'$thatdir/'" "$thisdir"
+ [ $V ] && echo rsync --rsh="ssh $ssh_opts" $rsync_opts "$host:$shellmagic'$thatdir/'" "$thisdir"
+ rsync --rsh="ssh $ssh_opts" $rsync_opts "$host:$shellmagic'$thatdir/'" "$thisdir"
;;
upload)
- rsync --rsh="ssh $ssh_opts" $rsync_opts "$thisdir/" "$host:'$thatdir'"
- [ $V ] && echo rsync --rsh="ssh $ssh_opts" $rsync_opts "$thisdir/" "$host:'$thatdir'"
+ [ $V ] && echo rsync --rsh="ssh $ssh_opts" $rsync_opts "$thisdir/" "$host:$shellmagic'$thatdir'"
+ rsync --rsh="ssh $ssh_opts" $rsync_opts "$thisdir/" "$host:$shellmagic'$thatdir'"
;;
*) echo "$prg error: You need to specify either --upload or --download!"
echo