#!/bin/csh
#
# adduser - simple script to add a new user.  To execute
#	    simply type adduser.  Only root can run this script
#	    successfully.
#	    
#
onintr quit:

#
set freedisk=100
# directory containing sample . files
set skeldir=/usr/local/adm/skel
#
set passwdfile=/etc/passwd
set groupfile=/etc/group
set phonelist=/usr/local/pub/phonelist
#
#
set local_host=`hostname`
#
#	get login, look for conflicts in /etc/passwd
#	and /usr/lib/aliases
#
set msg="enter login name, must be <= 8 characters"
echo "junk" > /tmp/AD1$$
echo "junk" > /tmp/AD2$$
set aliasdone = no
set good = no
while ( ${good} == no )
	echo ${msg}
	set dollar=$
	set login=$<
# look for it in the passwd file
	awk -F: '{print $1}' /etc/passwd | grep "^${login}${dollar}" \
		> /tmp/AD1$$
	if (! (-z /tmp/AD1$$)) then
		set msg="already used in passwd file, try again"
	else
# look for it in the /usr/lib/aliases file
		fgrep ':' /usr/lib/aliases | awk -F: '{print $1}' | \
			grep "^${login}${dollar}" > /tmp/AD2$$
		if (! (-z /tmp/AD2$$)) then
			echo -n "already used in aliases file, entry is:   "
			grep "^${login}:" /usr/lib/aliases
			echo -n "is that ok ???  "
			set answer = $<
			if (${answer} == n) then
				set msg="then try again, enter login id"
			else
				set good = yes
				set aliasdone = yes
			endif
		else
			set good = yes
		endif
	endif
end
rm /tmp/AD1*
rm /tmp/AD2*
#
#	get uid (biggest uid+1)
#
set uid=`sort -t: -nr +2 /etc/passwd | sed '1q' | awk -F: '{print $3}'` 
@ uid++
#
# 	get gid (group)
#
set gid
set null
set msg="enter unix group"
while ( ${gid} == ${null}) 
	echo ${msg}
	set group=$<
	set gid=`grep "^${group}:" /etc/group | awk -F: '{print $3}'`
	set msg="group not in group file, try again"
end
#
#	get parent directory
#	set up home
#
set good=no
set msg="enter location of home dir "
echo ${msg}
set top=$<
set home = /${top}/${login}
#
#	get finger info
#
echo "enter users full name, campus address, campus phone, home phone"
set finger = $<
#
set entry="${login}::${uid}:${gid}:${finger}:${home}:/bin/csh"
#
echo " "
echo login"			"${login}
echo group"			"${group}
echo uid"			"${uid}
echo gid"			"${gid}
#
echo home"			"${home}
echo " "
#
#
echo passwd entry is:
echo ${entry}
echo " "
#
set a=n
echo "continue?(y/n) (last chance before scribbling on files)"
	set a=$<
if ( $a == n ) exit
#
# 	add entry to passwd file
#
echo making passwd entry 
echo ${entry} >> $passwdfile
#
#	add name to group file
#	
echo making group entry
set scpt=/^${group}/s/\$/,${login}/
echo ${scpt} > /tmp/ADD$$
sed -f /tmp/ADD$$ /etc/group > /tmp/newgroup$$
rm /tmp/ADD$$
mv /tmp/newgroup$$ $groupfile
#
#
#	add to the phonelist
#
echo making phonelist entry
echo ${login}"		"${finger} >> ${phonelist}
#
# 	make users home, copy in skeleton files
#
echo making home directory
mkdir ${home}
cp ${skeldir}/.login ${skeldir}/.logout ${skeldir}/.cshrc \
	${skeldir}/.exrc ${skeldir}/.mailrc ${home}
find ${home} -exec chown ${login} {} \;  -exec chgrp ${group} \;
#
#
#	set passwd
#
passwd ${login}

quit:
	rm -f /tmp/*$$
