#!/bin/sh
PATH=.:$PATH

# Add users to CTSS

usage()
{
   echo "adduserctss [options] programmername programmernumber password"
   echo "  options:"
   echo "   -c \"comment\""
   echo "   -p projectname"
   echo "   -d diskquota"
   echo "   -r drumquota"
   echo "   -t tapequota"
}

projectname="M1416"
diskquota=4000
drumquota=0
tapequota=0
comment=""
privs=1

# Process options.

while getopts ":c:d:p:r:t:" opt; do
   case $opt in
   c)
      comment=`echo ${OPTARG} | tr [a-z] [A-Z]`
      ;;
   d)
      diskquota=${OPTARG}
      ;;
   p)
      projectname=`echo ${OPTARG} | tr [a-z] [A-Z]`
      ;;
   r)
      drumquota=${OPTARG}
      ;;
   t)
      tapequota=${OPTARG}
      privs=101
      ;;
   \? )
      echo "option -${OPTARG} unknown"
      usage
      exit 1
      ;;
   :)
      echo "option -${OPTARG} requires value"
      usage
      exit 1
      ;;
   esac
done
shift $(($OPTIND - 1))

if [ $# -lt 3 ]; then
   usage
   exit
fi

# Get the current info.

extractctss B uaccnt timacc m1416 cmfl02 uaccnt.bcd >adduserctss.log 2>&1
if [ $? -ne 0 ]; then
   echo "Error reading UACCNT file:"
   cat adduserctss.log
   exit 1
fi
bcd2txt uaccnt.bcd uaccnt.data 168 168

extractctss B timusd timacc m1416 cmfl02 timusd.bcd >adduserctss.log 2>&1
if [ $? -ne 0 ]; then
   echo "Error reading TIMUSD file:"
   cat adduserctss.log
   exit 1
fi
bcd2txt timusd.bcd timusd.data 168 168
rm -f adduserctss.log

# Call the program to do the work.

useraddctss $1 $2 ${projectname} $3 ${diskquota} ${drumquota} ${tapequota} \
	"${comment}"
if [ $? -ne 0 ]; then
   exit 1
fi

obj2img -u -f UFD -e DATA -o ufd.img ufd.data
obj2img -q -f QUOTA -e DATA -o quota.img quota.data
obj2img -t -r 168 -f TIMUSD -e TIMACC -o timusd.img timusd.data
obj2img -t -r 168 -f UACCNT -e TIMACC -o uaccnt.img uaccnt.data

# Update.

setupctss ufd.img >adduserctss.log 2>&1
if [ $? -ne 0 ]; then
   echo "Error adding UFD entry:"
   cat adduserctss.log
   exit 1
fi
setupctss quota.img >adduserctss.log 2>&1
if [ $? -ne 0 ]; then
   echo "Error adding quotas:"
   cat adduserctss.log
   exit 1
fi
setupctss timusd.img >adduserctss.log 2>&1
if [ $? -ne 0 ]; then
   echo "Error updating TIMUSD file:"
   cat adduserctss.log
   exit 1
fi
setupctss uaccnt.img >adduserctss.log 2>&1
if [ $? -ne 0 ]; then
   echo "Error updating UACCNT file:"
   cat adduserctss.log
   exit 1
fi
rm -f ufd.* quota.* timusd.* uaccnt.* adduserctss.log
