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