#!/bin/sh
#
# Original adduser 05 Feb 2002 by Jon L. Gardner
#
# Modified for Tor installer by Nick Mathewson
# 2007-06-12 Modified for leopard by Andrew Lewman


ROOTPROP=/

if [ "`whoami`" != "root" ]; then
echo "You must be root to execute this script."
exit
fi
if [ "x$3" = "x" ]; then
echo 'Usage: addsysuser <username> "<full name>" <homedir>'
exit 0
fi
username=$1
realname=$2
homedir=$3
if [ -x /usr/bin/dscl ]; then
   # Determine the gid of the daemon group
   gid=`dscl . -read /groups/daemon gid`
   if [ "x`dscl . -list /users|cut -f2 -d' '|grep $username`" != "x" ]; then
      echo The account $username already exists.
      exit 0
   fi
   # home is the local path to the home directory
   home=/Users/$username
   echo Creating account for $username...
   dscl . -create /users/$username
   dscl . -create /users/$username _writers_tim_passwd $username
   dscl . -create /users/$username realname $realname
   dscl . -create /users/$username _writers_passwd $username
   dscl . -create /users/$username gid $gid
   dscl . -create /users/$username home $homedir
   dscl . -create /users/$username name $username
   dscl . -create /users/$username passwd '*'
   dscl . -create /users/$username shell /dev/null
else
    # Determine the gid of the daemon group
   gid=`niutil -readprop $ROOTPROP /groups/daemon gid`
   if [ "x`niutil -list $ROOTPROP /users|cut -f2 -d' '|grep $username`" != "x" ]; then
      echo The account $username already exists.
      exit 0
   fi
   # home is the local path to the home directory
   home=/Users/$username
   # defhome is what goes into NetInfo
   defhome="/Network/Servers/MyServer/Users"
   #echo "Determining next available system uid (please be patient)..."
   # Uids over 500 are for system users.
   uiddef=`nidump passwd / | cut -d: -f3 | sort -n | grep -v '^[56789]..' |grep -v '^....$' | tail -n 1`
   uiddef=`echo $uiddef + 1 |bc`
   echo Creating account for $username...
   niutil -create $ROOTPROP /users/$username
   niutil -createprop $ROOTPROP /users/$username _writers_tim_passwd $username
   niutil -createprop $ROOTPROP /users/$username realname $realname
   niutil -createprop $ROOTPROP /users/$username _writers_passwd $username
   niutil -createprop $ROOTPROP /users/$username uid $uiddef
   #niutil -createprop $ROOTPROP /users/$username home_loc "<home_dir><url>afp://afp.server.com/Users/</url><path>$username</path></home_dir>"
   niutil -createprop $ROOTPROP /users/$username gid $gid
   niutil -createprop $ROOTPROP /users/$username home $homedir
   niutil -createprop $ROOTPROP /users/$username name $username
   niutil -createprop $ROOTPROP /users/$username passwd '*'
   niutil -createprop $ROOTPROP /users/$username shell /dev/null
fi
