#!/bin/sh

# "to_pi"	K. J. Turner <kjt@cs.stir.ac.uk>	05/11/97

# This program loads the Pilot from Unix files in the directory given by
# environment variable "PILOTDIR". Data files are held in the directory
# given by environment variable "DATADIR", and memo files in "MEMODIR".
#
# The options are:
# 
#   -a		download address book
#   -d		download date book
#   -e		download expenses (not currently implemented)
#   -f		download full set of files (default)
#   -h		print usage help
#   -m		download memos
#   -t		download todos

usage () {				# report use of program
  echo "usage: $prog [ -a(ddresses) | -d(ates) | -e(xpenses) | -f(ull) | \
                             -h(elp) | -m(emos) | -t(odos) ]"
  exit 1
}

setflags () {
  addr=$1;					# set address book flag
  date=$1;					# set date book flag
  exp=$1;					# set expenses flag
  memo=$1;					# set memo flag
  todo=$1;					# set todos flag
}

prog="`basename $0`"				# pilot command
pipars=""					# "put_pi" parameters
pifiles=""					# "piload" files

if [ ! -d "$DATADIR" -o ! -r "$DATADIR" ]	# data directory OK?
  then						# no - report error
    echo "$prog: data directory \"$DATADIR\" not readable"
    exit 1
fi

if [ ! -d "$MEMODIR" -o ! -r "$MEMODIR" ]	# memo directory OK?
  then						# no - report error
    echo "$prog: data directory \"$MEMODIR\" not readable"
    exit 1
fi

if [ -d "$PILOTDIR" -a -r "$PILOTDIR" ]		# Pilot directory OK?
  then						# yes - change to it
    cd "$PILOTDIR"
  else						# no - report error
    echo "$prog: Pilot directory \"$PILOTDIR\" not readable"
    exit 1
fi

if [ $# -gt 0 ]					# any parameters?
  then
    pars="$*"					# save parameters
    setflags 0;					# unset all flags
    for par in $pars				# analyse parameters
      do
	case $par in
	  -a) addr=1;;				# address book
	  -d) date=1;;				# date book
	  -e) exp=1;;				# expenses
	  -f) setflags 1;;			# full files
	  -h) usage;;				# help
	  -m) memo=1;;				# memos
	  -t) todo=1;;				# todos
	  -*) echo "$prog: unknown option \"$par\""; usage;;
	  *) echo "$prog: only \"-\" options allowed"; usage;;
	esac
      done
  else
    setflags 1					# set all flags by default 
fi

if [ $addr = 1 ]				# process address book?
  then
    fgrep -v PDA "$DATADIR/oaddrs" > Business.addr # copy business addrs
    fgrep PDA "$DATADIR/oaddrs" > QuickList.addr # copy quick addrs
    cp "$DATADIR/haddrs" Personal.addr		# copy personal addrs
    if [ -f "$DATADIR/uaddrs" ]			# unfiled addrs exist?
      then
        cp "$DATADIR/uaddrs" Unfiled.addr	# copy unfiled addrs
    fi
    pipars="$pipars -a"				# make address database
    pifiles="$pifiles Address"			# load Pilot with address book
fi

if [ $date = 1 ]				# process date book?
  then
    cp "$DATADIR/calendar" Datebook		# copy calendar
    pipars="$pipars -d"				# make date book database
    pifiles="$pifiles Datebook"			# load Pilot with date book
fi

if [ $exp = 1 ]					# process expenses?
  then
    :						# expenses not yet implemented
fi

if [ $memo = 1 ]				# process memos?
  then
    cp $MEMODIR/*.memo* .			# copy memo files
    pipars="$pipars -m"				# make memo database
    pifiles="$pifiles Memo"			# load Pilot with memos
fi

if [ $todo = 1 ]				# process todos?
  then
    cp "$DATADIR/todo" ToDo			# copy todo file
    pipars="$pipars -t"				# make todo list database
    pifiles="$pifiles ToDo"			# load Pilot with todo list
fi

put_pi $pipars					# convert files to Pilot form

rm -f *.addr Datebook Expense *.memo* ToDo	# remove temporary files ...

piload $pifiles					# load Pilot from Unix

exit 0
