#!/bin/sh # # get -- get files or the current directory, to FARMACHINE # [ -n "$echo" ] && set -x USAGE='get [-f] [-x] [file2] ...' FORCE=false NONEXEC=false while true do case "$1" in -f) FORCE=true shift ;; -x) NONEXEC=true shift ;; -*) echo "$USAGE" >&2 exit 2 ;; *) break ;; esac done ME='leavens' CYGDRIVEHOME="/cygdrive/d" # `(cd $HOME; /bin/pwd)` FARMACHINE='larch.cs.iastate.edu' AWAY="$FARMACHINE:/home/bambam/$ME" STATUS=0 # get part of directory name below $HOME or $ALTHOME fulldir=`pwd` case "$fulldir" in $HOME|$CYGDRIVEHOME) below=. if test "$#" -eq 0 then echo "ERROR: can't get everything in $HOME" >&2 exit 1 fi ;; *) below=`expr $fulldir : $HOME/'\(.*\)'` ;; esac case "$below" in 0|'') below=`expr $fulldir : $CYGDRIVEHOME/'\(.*\)'` ;; esac awaybelow="$below" case "$below" in 0|'') echo "can't update $fulldir, not under $HOME" >&2 exit 1 ;; bin|bat) awaybelow="WWW/Windows/$below" if test $# -le 0 then echo "can't get all of $below" >&2 exit 2 fi ;; *) ;; esac echo "updating `pwd` from $awaybelow on $FARMACHINE" if test $# -gt 0 then for f do scp -pr "$AWAY/$awaybelow/$f" . || STATUS=1 if $NONEXEC then chmod a-x,o-w $f else chmod o-w $f fi done else OTHEROPTIONS='' if $FORCE then rsync -S --rsync-path=/usr/bin/rsync -aup --delete "$FARMACHINE"':'"$awaybelow/" . || STATUS=1 else rsync -S --rsync-path=/usr/bin/rsync -aup "$FARMACHINE"':'"$awaybelow/" . || STATUS=1 fi if $NONEXEC then chmod -R a-x . else chmod -R o-w . fi fi exit $STATUS