[comp.sources.misc] v13i001: Simple Bourne Shell BBS

bobk ) (05/26/90)

Posting-number: Volume 13, Issue 1
Submitted-by: root@dogear.UUCP (dogear!bobk )
Archive-name: bbs_bk/part01

This is a simple BBS system written in Bourne shell script. I've used it in
the past with success. I emptied all of the system specific (user) files,
so it should be pretty generic. I also took out most of the bells and whistles
that made it specific to my system. Because it's written in shell script, it
should be a pretty easy task to adapt it to virtually anything in the *NIX
world. If you give it a try, you should make sure that the utilities it uses
are located in the same directories as the ones called out in the script. If
not, just change them.

The system allows file xfer, messages (internal), a link to rn and postnews,
a bulletin system, and a couple of other (possibly) useful functions. Things
like user time-allotments are removed, not everyone has the same idlekill or
'at' commands. However, it should be no problem to quickly make the basic
system functional.

A system user called 'bbs' should be added to the /etc/passwd file, and users
log in that way.

mine looks like 

bbs::107:100:BBS Login Account:/bbs:/bin/sh -c /bbs/bbs

This will dump users who try to CTRL-C to the system.



#
# This is a Shell Archive.
# Remove everything above and including the cut line.
# Then run the rest of the file through #! /bin/sh.
# -----cut here-----cut here-----cut here-----cut here-----
#! /bin/sh
# Execute the file with #! /bin/sh (not csh) to create the files:
#	0
#	B.1
#	B.2
#	LOGGEDonce
#	News
#	USERFILE
#	USERlog
#	bbs
#	bbsmail
#	bull.system
#	ck.mail
#	download
#	file.viewing
#	file.xfer
#	file.xfer.dn
#	file.xfer.up
#	mail.system
#	msgno
#	msgs
#	new.users.file
#	news.poster
#	news.reader
#	newuser.reg
#	opening.screen
#	post.msgs
#	read.mail
#	read.post
#	send.mail
#	sh
#	subsystem.bbs
#	sysop.chat
#	tmp
#	upload
#	user.menu
#	user.welcome
# This Archive created: Mon May 21 10:21:16 1990
#
export PATH; PATH=/bin:$PATH
echo shar: extracting "'0'" '(0 characters)'
if test -f '0'
then
echo shar: will not over-write existing file "'0'"
else
sed 's/^XX//' > '0' << \SHAR_EOF
SHAR_EOF
if test 0 -ne "`wc -c < '0'`"
then
echo shar: error transmitting "'0'" '(should have been 0 characters)'
fi
chmod +x '0'
fi # end of overwriting check
echo shar: extracting "'B.1'" '(1431 characters)'
if test -f 'B.1'
then
echo shar: will not over-write existing file "'B.1'"
else
sed 's/^XX//' > 'B.1' << \SHAR_EOF
XXThis is Bulletin number 1.
XX
XXThis system was written in Borne Shell Script on an OSI Diab DS90-10 Modified
XXDNP. The machine runs DNIX Real Time, Version 5.0 1.2 2.0. It is owned and
XXoperated by Bob Kirkpatrick of Spokane Washington. (509) 535-6575. The system
XXreceives e-mail through uunet to:   ...uunet!isc-br!tau-ceti!dogear![user]
XXDog Ear'd Systems, a Division of Brand-X (c) 1988, 1989, 1990 Bob Kirkpatrick
XX
XX
XXWhile the system is basic at best, it incorporates the essential functions of
XXa BBS, including a hook to rn and postnews. The system is not exactly sophis-
XXtocated, but it works.
XX
XXIt requires that the following utilities exist on the system it is installed 
XXin:
XX		wc 	word count
XX		cut	a statement slicing routine
XX		echo	basic statement of display
XX		talk	intra/inter node chat facility
XX		rn	news reader
XX		postnews
XX		
XXThe system requires that a user named 'bbs' exist, and that a group called
XX'user' exists as well. 
XX
XXThe BBS is easily modified, and it's internal editing is a function of the
XXenvironmental variable $EDITOR.
XX
XX
XXInformation regarding the system may be obtained from the author by e-mail.
XX
XX
XX+---------------------------------------------------------------------------+
XX|Bob Kirkpatrick   *    Dog Ear'd Systems,  Spokane, WA    * If it ain't sim|   |                  *   uunet!isc-br!tau-ceti!dogear!bobk   * ple, it stinks.|
XX+---------------------------------------------------------------------------+
SHAR_EOF
if test 1431 -ne "`wc -c < 'B.1'`"
then
echo shar: error transmitting "'B.1'" '(should have been 1431 characters)'
fi
chmod +x 'B.1'
fi # end of overwriting check
echo shar: extracting "'B.2'" '(445 characters)'
if test -f 'B.2'
then
echo shar: will not over-write existing file "'B.2'"
else
sed 's/^XX//' > 'B.2' << \SHAR_EOF
XXThis is Bulletin number 2.
XX
XXThere are 3 file transfer protocols on Dogear. They are:
XX
XX                   XMODEM     YMODEM   and   KERMIT
XX
XXXmodem and Ymodem may be operated using text or binary modes, Kermit defaults
XXto binary. In addition, X and Ymodem may be invoked with either the standard
XX128 byte or 1024 byte packet lengths.
XX
XXFile transfer protocol and configuration are menu selectable to prevent user
XXcommand line errors.
XX
XX
XXEnd of File
SHAR_EOF
if test 445 -ne "`wc -c < 'B.2'`"
then
echo shar: error transmitting "'B.2'" '(should have been 445 characters)'
fi
chmod +x 'B.2'
fi # end of overwriting check
echo shar: extracting "'LOGGEDonce'" '(67 characters)'
if test -f 'LOGGEDonce'
then
echo shar: will not over-write existing file "'LOGGEDonce'"
else
sed 's/^XX//' > 'LOGGEDonce' << \SHAR_EOF
XXsysop		sysop's name
XXbobk		Bob Kirkpatrick
XXficus		Ficus Kirkpatrick
SHAR_EOF
if test 67 -ne "`wc -c < 'LOGGEDonce'`"
then
echo shar: error transmitting "'LOGGEDonce'" '(should have been 67 characters)'
fi
chmod +x 'LOGGEDonce'
fi # end of overwriting check
if test ! -d 'News'
then
	echo shar: creating directory "'News'"
	mkdir 'News'
fi
echo shar: entering directory "'News'"
cd 'News'
echo shar: done with directory "'News'"
cd ..
echo shar: extracting "'USERFILE'" '(80 characters)'
if test -f 'USERFILE'
then
echo shar: will not over-write existing file "'USERFILE'"
else
sed 's/^XX//' > 'USERFILE' << \SHAR_EOF
XXbobk zoot Fri May 18 09:48:44 PDT 1990
XXficus pizza Fri May 18 21:13:50 PDT 1990
SHAR_EOF
if test 80 -ne "`wc -c < 'USERFILE'`"
then
echo shar: error transmitting "'USERFILE'" '(should have been 80 characters)'
fi
chmod +x 'USERFILE'
fi # end of overwriting check
echo shar: extracting "'USERlog'" '(709 characters)'
if test -f 'USERlog'
then
echo shar: will not over-write existing file "'USERlog'"
else
sed 's/^XX//' > 'USERlog' << \SHAR_EOF
XXbkirk  Fri May 11 14:58:48 PDT 1990
XXbkirk  Fri May 11 15:03:59 PDT 1990
XXbkirk  Fri May 11 15:06:53 PDT 1990
XXbkirk  Fri May 11 15:10:10 PDT 1990
XXbkirk  Fri May 11 15:11:03 PDT 1990
XXbkirk  Fri May 11 15:11:43 PDT 1990
XXbkirk  Fri May 11 15:13:30 PDT 1990
XXbkirk  Sat May 12 11:03:56 PDT 1990
XXbkirk  Sat May 12 11:06:50 PDT 1990
XXbkirk  Fri May 18 09:20:02 PDT 1990
XXbkirk  Fri May 18 09:23:41 PDT 1990
XXnew  Fri May 18 09:46:10 PDT 1990
XXnew  Fri May 18 09:48:45 PDT 1990
XXbobk  Fri May 18 10:25:02 PDT 1990
XXnew  Fri May 18 21:13:50 PDT 1990
XXficus  Fri May 18 21:25:30 PDT 1990
XXbobk  Fri May 18 22:08:25 PDT 1990
XXbobk  Fri May 18 22:22:36 PDT 1990
XXbobk  Fri May 18 22:29:23 PDT 1990
XXbobk  Fri May 18 22:32:27 PDT 1990
SHAR_EOF
if test 709 -ne "`wc -c < 'USERlog'`"
then
echo shar: error transmitting "'USERlog'" '(should have been 709 characters)'
fi
chmod +x 'USERlog'
fi # end of overwriting check
echo shar: extracting "'bbs'" '(1374 characters)'
if test -f 'bbs'
then
echo shar: will not over-write existing file "'bbs'"
else
sed 's/^XX//' > 'bbs' << \SHAR_EOF
XX#! /bin/sh
XXtrap interrupt SIGINT
XX/bin/stty -lcase
XXSHELL=.noyoudont
XX# bbs
XX# a simple unix bbs system
XX# written by: Bob Kirkpatrick: Fri May 11 14:45:21 PDT 1990
XX#
XX#
XX.clear
XX/bin/echo "Can your terminal process lower case (y/n): \c"
XXread userans
XXexport userans
XXif [ "$userans" = "y" ]
XXthen
XX	.clear
XX	/bin/echo "Good, all keystrokes MUST be in lowercase for the system to"
XX	/bin/echo "function properly."
XX	/bin/cat ./opening.screen
XX	trap .check_out 0
XXelse
XX	/bin/echo "Sorry, this system is case dependent. You must be able to"
XX	/bin/echo "use lower case characters."
XX	/bin/kill -9 0
XXfi
XX/bin/echo "Please enter username or 'new'"
XX/bin/echo "if new user: \c"
XXread bbsuser
XX[ "$bbsuser" = "" ] && /bin/kill -9 0
XXif [ "$bbsuser" = "new" ]
XXthen
XX	/bin/sh ./newuser.reg
XXelse
XX	founds=`/bin/grep $bbsuser ./USERFILE | wc -l`
XX	if [ "$founds" > 0 ]
XX	then
XX		/bin/echo "Password: \c"
XX		read bbsword
XX		.clear
XX		userok=`/bin/grep $bbsword ./USERFILE | /bin/grep $bbsuser | /bin/wc -l`
XX		if [ "$userok" -gt 0 ]
XX		then
XX			/bin/echo "Thank You"
XX		else
XX			/bin/echo "Don't mean to offend, but that wasn't it."
XX			/bin/echo "You may log back in to retry."
XX			/bin/kill -9 0
XX		fi
XX
XX	else
XX		/bin/echo "User unknown to system"
XX		/bin/echo "Goodbye"
XX		/bin/kill -9 0
XX	fi
XXfi
XXexport bbsuser
XX/bin/echo "$bbsuser  "`/bin/date` >>USERlog
XXwhile true
XXdo
XX	/bin/sh subsystem.bbs
XXdone
XX#
XX# safety net
XX/bin/kill -9 0
SHAR_EOF
if test 1374 -ne "`wc -c < 'bbs'`"
then
echo shar: error transmitting "'bbs'" '(should have been 1374 characters)'
fi
chmod +x 'bbs'
fi # end of overwriting check
if test ! -d 'bbsmail'
then
	echo shar: creating directory "'bbsmail'"
	mkdir 'bbsmail'
fi
echo shar: entering directory "'bbsmail'"
cd 'bbsmail'
echo shar: done with directory "'bbsmail'"
cd ..
echo shar: extracting "'bull.system'" '(683 characters)'
if test -f 'bull.system'
then
echo shar: will not over-write existing file "'bull.system'"
else
sed 's/^XX//' > 'bull.system' << \SHAR_EOF
XX#! /bin/sh
XX#
XX# bull.system
XX#
XX# system bulletin reader
XX# Bob Kirkpatrick  Sat May 12 07:59:03 PDT 1990
XX#
XXwhile true
XXdo
XX	clear
XX	echo "                           ] Dog Ear'd Bulletins ["
XX	echo "=============================================================================="
XX	echo "\n\n\n"
XX	bullno=`lc B.* | wc -l`
XX	if [ "$bullno" -eq "0" ]
XX	then
XX		echo "Sorry, there are no bulletins available today"
XX		sleep 3
XX		exit
XX	fi
XX	echo "Systems has bulletins \c"
XX	for x in B.*
XX	do
XX		x=`echo $x | cut -c3-4`
XX		echo "$x,  \c"
XX	done
XX	echo " "
XX	echo " "
XX	echo "[c/r] to exit"
XX	echo "Read which bulletin: \c"
XX	read userans
XX	if [ "$userans" -eq "" ]
XX	then 
XX		exit
XX	else
XX		more B.$userans
XX	fi
XXdone
SHAR_EOF
echo shar: 3 control characters may be missing from "'bull.system'"
if test 683 -ne "`wc -c < 'bull.system'`"
then
echo shar: error transmitting "'bull.system'" '(should have been 683 characters)'
fi
chmod +x 'bull.system'
fi # end of overwriting check
echo shar: extracting "'ck.mail'" '(0 characters)'
if test -f 'ck.mail'
then
echo shar: will not over-write existing file "'ck.mail'"
else
sed 's/^XX//' > 'ck.mail' << \SHAR_EOF
SHAR_EOF
if test 0 -ne "`wc -c < 'ck.mail'`"
then
echo shar: error transmitting "'ck.mail'" '(should have been 0 characters)'
fi
chmod +x 'ck.mail'
fi # end of overwriting check
if test ! -d 'download'
then
	echo shar: creating directory "'download'"
	mkdir 'download'
fi
echo shar: entering directory "'download'"
cd 'download'
echo shar: done with directory "'download'"
cd ..
echo shar: extracting "'file.viewing'" '(0 characters)'
if test -f 'file.viewing'
then
echo shar: will not over-write existing file "'file.viewing'"
else
sed 's/^XX//' > 'file.viewing' << \SHAR_EOF
SHAR_EOF
if test 0 -ne "`wc -c < 'file.viewing'`"
then
echo shar: error transmitting "'file.viewing'" '(should have been 0 characters)'
fi
chmod +x 'file.viewing'
fi # end of overwriting check
echo shar: extracting "'file.xfer'" '(144 characters)'
if test -f 'file.xfer'
then
echo shar: will not over-write existing file "'file.xfer'"
else
sed 's/^XX//' > 'file.xfer' << \SHAR_EOF
XXclear
XXecho "[U]pload,  [D]ownload, or [A]bort: \c"
XXread userans
XXcase $userans in
XX	u)	sh file.xfer.up ;;
XX	d)	sh file.xfer.dn ;;
XX	a)	exit ;;
XXesac
SHAR_EOF
if test 144 -ne "`wc -c < 'file.xfer'`"
then
echo shar: error transmitting "'file.xfer'" '(should have been 144 characters)'
fi
chmod +x 'file.xfer'
fi # end of overwriting check
echo shar: extracting "'file.xfer.dn'" '(1264 characters)'
if test -f 'file.xfer.dn'
then
echo shar: will not over-write existing file "'file.xfer.dn'"
else
sed 's/^XX//' > 'file.xfer.dn' << \SHAR_EOF
XX#! /bin/sh
XX# file xfer system
XX# Bob Kirkpatrick  Sat May 12 08:41:10 PDT 1990
XX#
XXclear
XXavails=`/bin/echo ./download/* | /bin/wc -w`
XXecho "System has $avails files available"
XXecho "\nDo you want to see the list (y/n) \c"
XXread userans
XXif [ "$userans" = "y" ]
XXthen
XX	/bin/echo "\nPress [ctrl-k] to stop scroll, [ctrl-q] to continue...\n"
XX	/bin/lc ./download 
XX	/bin/echo "\n"
XXfi
XX/bin/echo "\nWildcards in filename(s) are ok..."
XX/bin/echo "Download which file(s)?  [c/r] to end list\n"
XXcnt=0
XXwhile true
XXdo
XX	cnt=`expr $cnt + 1`
XX	/bin/echo "File $cnt> \c"
XX	ans="\n"
XX	read ans
XX	if [ "$ans" = "" ]
XX	then
XX		break
XX	else
XX		userans="$userans $ans"
XX	fi
XXdone	
XXif [ `/bin/echo $userans | wc -c` -lt 2 ]
XXthen
XX	exit
XXfi
XX.clear
XX/bin/echo "Files: $userans\n"
XXcd /bbs/download
XX/bin/echo "\nProtocols\n"
XX/bin/echo "1)  Standard XMODEM       2)  XMODEM 1k Packets"
XX/bin/echo "3)  YMODEM Batch          4)  1k YMODEM Batch"
XX/bin/echo "5)  Kermit                0)  Abort Transfer"
XX/bin/echo "\nUse which [ 1-5 or c/r ]: \c"
XXread ans
XXcase $ans in
XX	1)	/usr/local/xmodem -sbdl $userans ;;
XX	2)	/usr/local/xmodem -sbkdl $userans ;;
XX	3)	/usr/local/xmodem -sbydl $userans ;;
XX	4)	/usr/local/xmodem -sbykdl $userans ;;
XX	5)	/usr/bin/kermit -l /dev/uds1 -b 2400 -s $userans ;;
XX	0)	exit ;;
XXesac
XXcd /bbs
SHAR_EOF
if test 1264 -ne "`wc -c < 'file.xfer.dn'`"
then
echo shar: error transmitting "'file.xfer.dn'" '(should have been 1264 characters)'
fi
chmod +x 'file.xfer.dn'
fi # end of overwriting check
echo shar: extracting "'file.xfer.up'" '(543 characters)'
if test -f 'file.xfer.up'
then
echo shar: will not over-write existing file "'file.xfer.up'"
else
sed 's/^XX//' > 'file.xfer.up' << \SHAR_EOF
XX#! /bin/sh
XX# file xfer system
XX# Bob Kirkpatrick  Sat May 12 08:41:10 PDT 1990
XX#
XXclear
XXecho "Upload what file?  \c"
XXread userans
XXecho "\nProtocols\n"
XXecho "1)  Standard XMODEM       2)  XMODEM 1k Packets"
XXecho "3)  YMODEM Batch          4)  1k YMODEM Batch"
XXecho "5)  Kermit                0)  Abort Transfer"
XXecho "\nUse which [ 1-5 or 0 ]: \c"
XXread ans
XXcase $ans in
XX	1)	xmodem -rb $userans ;;
XX	2)	xmodem -rbk $userans ;;
XX	3)	xmodem -rby $userans ;;
XX	4)	xmodem -rbyk $userans ;;
XX	5)	kermit -l /dev/uds1 -b 2400 -r $userans ;;
XX	0)	exit ;;
XXesac
SHAR_EOF
if test 543 -ne "`wc -c < 'file.xfer.up'`"
then
echo shar: error transmitting "'file.xfer.up'" '(should have been 543 characters)'
fi
chmod +x 'file.xfer.up'
fi # end of overwriting check
echo shar: extracting "'mail.system'" '(951 characters)'
if test -f 'mail.system'
then
echo shar: will not over-write existing file "'mail.system'"
else
sed 's/^XX//' > 'mail.system' << \SHAR_EOF
XX#! /bin/sh
XX# bbs mail system
XX# Bob Kirkpatrick  Sat May 12 12:33:58 PDT 1990
XX#
XXwhile true
XXdo
XX.clear
XX/bin/echo "================================] Mail/Message Menu [=========================\n"
XX/bin/echo " General Instructions:               |   [S]end mail to a user"
XX/bin/echo "                                     |   [G]eneral message post"
XX/bin/echo " To enter a message, simply type the |   [P]ersonal message(s)"
XX/bin/echo " message. There's no text formatting |   [R]ead General posts"
XX/bin/echo " so any required must be manual.     |   [V]iew personal mail"
XX/bin/echo " End your message on an empty line   |   [E]xit to Main Menu"
XX/bin/echo " with an [control-d].                |\n"
XX/bin/echo "=============================================================================\n"
XX/bin/echo "[Mail] Command: \c"
XXread userans
XXcase $userans in
XX	s)	send.mail ;;
XX	g)	post.msgs ;;
XX	p)	ck.mail ;;
XX	r)	read.post ;;
XX	v)	read.mail ;;
XX	e)	exit ;;
XXesac
XXdone
SHAR_EOF
if test 951 -ne "`wc -c < 'mail.system'`"
then
echo shar: error transmitting "'mail.system'" '(should have been 951 characters)'
fi
chmod +x 'mail.system'
fi # end of overwriting check
echo shar: extracting "'msgno'" '(2 characters)'
if test -f 'msgno'
then
echo shar: will not over-write existing file "'msgno'"
else
sed 's/^XX//' > 'msgno' << \SHAR_EOF
XX0
SHAR_EOF
if test 2 -ne "`wc -c < 'msgno'`"
then
echo shar: error transmitting "'msgno'" '(should have been 2 characters)'
fi
chmod +x 'msgno'
fi # end of overwriting check
if test ! -d 'msgs'
then
	echo shar: creating directory "'msgs'"
	mkdir 'msgs'
fi
echo shar: entering directory "'msgs'"
cd 'msgs'
echo shar: done with directory "'msgs'"
cd ..
echo shar: extracting "'new.users.file'" '(548 characters)'
if test -f 'new.users.file'
then
echo shar: will not over-write existing file "'new.users.file'"
else
sed 's/^XX//' > 'new.users.file' << \SHAR_EOF
XXBob Kirkpatrick
XXDog Food
XX123 Street Address
XXSpokane, WASHday
XX123-456-7890
XX
XXPhernt Doc
XXzibble
XX12345 buttski
XXfrabblestadt, ok
XX123 456 1234
XX
XXhsdjhh
XXjsdhkjsdjh
XXjdshj
XXdsjhs
XXjsdh
XX;sdlhj
XXsa
XXsa
XXsa
XXsa
XXsa
XXsa
XX
XX
XX
XX
XX
XX
XX----------- Fri May 18 09:45:19 PDT 1990
XXBob Kirkpatrick
XXphernt
XXI am homeless
XXSpokane, WA
XX509-5356575
XX
XXbobk: added
XX----------- Fri May 18 09:47:59 PDT 1990
XXBob Kirkpatrick
XXPhernt
XXI am homeless
XXSpokane, WA
XX509-535-6575
XX
XXbobk: added
XX----------- Fri May 18 21:13:05 PDT 1990
XXFicus Kirkpatrick
XXbizarre
XXRight here
XXSpokane, Wa
XXbzzzzzzz
XX
XXficus: added
SHAR_EOF
if test 548 -ne "`wc -c < 'new.users.file'`"
then
echo shar: error transmitting "'new.users.file'" '(should have been 548 characters)'
fi
chmod +x 'new.users.file'
fi # end of overwriting check
echo shar: extracting "'news.poster'" '(96 characters)'
if test -f 'news.poster'
then
echo shar: will not over-write existing file "'news.poster'"
else
sed 's/^XX//' > 'news.poster' << \SHAR_EOF
XX#! /bin/sh
XX#
XX# Bob Kirkpatrick Fri May 18 21:56:47 PDT 1990
XX# news poster
XX#
XX/usr/local/postnews
SHAR_EOF
if test 96 -ne "`wc -c < 'news.poster'`"
then
echo shar: error transmitting "'news.poster'" '(should have been 96 characters)'
fi
chmod +x 'news.poster'
fi # end of overwriting check
echo shar: extracting "'news.reader'" '(288 characters)'
if test -f 'news.reader'
then
echo shar: will not over-write existing file "'news.reader'"
else
sed 's/^XX//' > 'news.reader' << \SHAR_EOF
XX#! /bin/sh
XX#
XX# Bob Kirkpatrick Fri May 18 21:51:24 PDT 1990
XX# News reader
XX/bin/echo "------------------------------------------------------------------------------" >.signature
XX/bin/cat LOGGEDonce | /bin/grep $bbsuser >>.signature
XX/bin/rm .rnsoft .rnlast .newsrc .oldnewsrc
XX/usr/local/rn
SHAR_EOF
if test 288 -ne "`wc -c < 'news.reader'`"
then
echo shar: error transmitting "'news.reader'" '(should have been 288 characters)'
fi
chmod +x 'news.reader'
fi # end of overwriting check
echo shar: extracting "'newuser.reg'" '(2192 characters)'
if test -f 'newuser.reg'
then
echo shar: will not over-write existing file "'newuser.reg'"
else
sed 's/^XX//' > 'newuser.reg' << \SHAR_EOF
XX#! /bin/sh
XX# new user registration module
XX# exec with 'sh newuser.reg'
XX#
XX# Fri May 11 13:36:17 PDT 1990
XX#
XXecho "Please answer the following questions. Inaccurate or missing answers"
XXecho "will deny you access."
XXecho " "
XXecho "----------- "`date` >>./new.users.file
XXecho "Enter full name: \c"
XXread userans
XXif [ "$userans" = "" ]
XXthen
XX	echo "ok, fine."
XX	/bin/kill -9 0
XXfi
XXecho $userans >>./new.users.file
XXname=$userans
XXecho "Enter your occupation: \c"
XXread userans
XXif [ "$userans" = "" ]
XXthen
XX	echo "ok, fine."
XX	/bin/kill -9 0
XXfi
XXecho $userans >>./new.users.file
XXecho "Your street address: \c"
XXread userans
XXif [ "$userans" = "" ]
XXthen
XX	echo "ok, fine."
XX	/bin/kill -9 0
XXfi
XXecho $userans >>./new.users.file
XXecho "Your city and state: \c"
XXread userans
XXif [ "$userans" = "" ]
XXthen
XX	echo "ok, fine."
XX	/bin/kill -9 0
XXfi
XXecho $userans >>./new.users.file
XXecho "Your home (voice) phone: \c"
XXread userans
XXif [ "$userans" = "" ]
XXthen
XX	echo "ok, fine."
XX	/bin/kill -9 0
XXfi
XXecho $userans >>./new.users.file
XXecho "Data phone (if any): \c"
XXread userans
XXecho $userans >>./new.users.file
XXecho " "
XXecho "This system disallows handles or other false names. If you wish to"
XXecho "use one, call another bbs. Your system-name here will be your first"
XXecho "name initial, concatenated to the first 4-5 letters of your last"
XXecho "name or vice-versa. eg: John Smith=jsmith or Alice Jameson=alicej."
XXecho " "
XXecho "Would you like to become a system user (y/n): \c"
XXread userans
XXecho " "
XXif [ "$userans" = "y" ]
XXthen
XX	isok=1
XX	while [ $isok -ne 0 ]
XX	do
XX		echo " "
XX		echo "enter the user-name (like the above example)"
XX		echo "that you'll use on this bbs: \c"
XX		read bbsuser
XX		echo " "
XX		tryit=`/bin/cat ./USERFILE | grep $bbsuser | /bin/wc -l`
XX		if [ $tryit -gt 0 ]
XX		then
XX			echo "$bbsuser: name already exists."
XX			echo "try a different (but similar) name"
XX		fi
XX		isok=$tryit
XX	done
XX
XX	echo " "
XX	echo "Enter a SINGLE-WORD password of 4-8 characters: \c"
XX	read userans
XX	export bbsuser
XX	passentry="$bbsuser $userans "`date`
XX	echo "$bbsuser\t\t$name" >>./LOGGEDonce
XX	echo $passentry >>./USERFILE
XX	echo "$bbsuser: added" >>./new.users.file
XX	echo " "
XX	echo "Thanks!"
XXelse
XX	echo "ok, then bye-bye."
XX	kill -9 0
XXfi
XXexit
XXkill -9 0
SHAR_EOF
if test 2192 -ne "`wc -c < 'newuser.reg'`"
then
echo shar: error transmitting "'newuser.reg'" '(should have been 2192 characters)'
fi
chmod +x 'newuser.reg'
fi # end of overwriting check
echo shar: extracting "'opening.screen'" '(81 characters)'
if test -f 'opening.screen'
then
echo shar: will not over-write existing file "'opening.screen'"
else
sed 's/^XX//' > 'opening.screen' << \SHAR_EOF
XX--------------------------
XXWelcome: Dog Ear'd Systems
XX--------------------------
SHAR_EOF
if test 81 -ne "`wc -c < 'opening.screen'`"
then
echo shar: error transmitting "'opening.screen'" '(should have been 81 characters)'
fi
chmod +x 'opening.screen'
fi # end of overwriting check
echo shar: extracting "'post.msgs'" '(281 characters)'
if test -f 'post.msgs'
then
echo shar: will not over-write existing file "'post.msgs'"
else
sed 's/^XX//' > 'post.msgs' << \SHAR_EOF
XX#! /bin/sh
XX# general message posts
XX# Bob Kirkpatrick  Sat May 12 13:18:23 PDT 1990
XX#
XXuserans="\n"
XXmsgcnt=`cat msgno`
XXmsgid=`expr $msgcnt + 1`
XX$EDITOR ./msgs/$msgid.all
XXecho "\n(S)end or (A)bort the message: \c"
XXread ans
XX[ $ans = 'a' ] && rm ./msgs/$msgid*;exit
XXcat $msgid >./msgno
SHAR_EOF
if test 281 -ne "`wc -c < 'post.msgs'`"
then
echo shar: error transmitting "'post.msgs'" '(should have been 281 characters)'
fi
chmod +x 'post.msgs'
fi # end of overwriting check
echo shar: extracting "'read.mail'" '(570 characters)'
if test -f 'read.mail'
then
echo shar: will not over-write existing file "'read.mail'"
else
sed 's/^XX//' > 'read.mail' << \SHAR_EOF
XX#! /bin/sh
XX# mail reader
XX# Bob Kirkpatrick Fri May 18 10:31:03 PDT 1990
XX#
XX/bin/echo "\n\nwait...\c"
XXmwaits=0
XXmwaits=`echo ./msgs/*$bbsuser | wc -w` 
XXif [ $mwaits -eq 0 ] 
XXthen
XX	/bin/echo "Sorry, no mail for you."
XX	/bin/sleep 2
XX	exit
XXfi
XX/bin/echo "$mwaits message(s) waiting."
XX/bin/echo "Read now (y/n) \c"
XXread userans
XX[ "$userans" = "n" ] && exit
XX/bin/echo "\nPRESS 'h' for help. . ."
XXsleep 2
XXfor x in `echo ./msgs/*$bbsuser`
XXdo
XX	/usr/bin/pg -nscp " [q=quit, space=more]: " $x
XX	/bin/echo "Delete this message (y/n) \c"
XX	read userans
XX	[ "$userans" = "y" ] && rm $x
XXdone
SHAR_EOF
if test 570 -ne "`wc -c < 'read.mail'`"
then
echo shar: error transmitting "'read.mail'" '(should have been 570 characters)'
fi
chmod +x 'read.mail'
fi # end of overwriting check
echo shar: extracting "'read.post'" '(264 characters)'
if test -f 'read.post'
then
echo shar: will not over-write existing file "'read.post'"
else
sed 's/^XX//' > 'read.post' << \SHAR_EOF
XX#! /bin/sh -r
XX# read general posts
XX# Bob Kirkpatrick Fri May 18 20:49:32 PDT 1990
XX#
XXgwaits=`echo ./msgs/*.all | wc -w`
XXecho "There are $gwaits item(s) on the general board today"
XXecho "DO you want to read any? (y/n): \c"
XXread userans
XX[ "$userans" = "n" ] && exit
XX
SHAR_EOF
if test 264 -ne "`wc -c < 'read.post'`"
then
echo shar: error transmitting "'read.post'" '(should have been 264 characters)'
fi
chmod +x 'read.post'
fi # end of overwriting check
echo shar: extracting "'send.mail'" '(1002 characters)'
if test -f 'send.mail'
then
echo shar: will not over-write existing file "'send.mail'"
else
sed 's/^XX//' > 'send.mail' << \SHAR_EOF
XX#! /bin/sh
XX# send mail
XX# Bob Kirkpatrick  Sat May 12 13:18:23 PDT 1990
XX#
XXuserans=""
XX/bin/echo "Who are you sending mail to? (c/r only for list)"
XX/bin/echo "To: \c"
XXread userans
XXif [ "$userans" = "" ]
XXthen
XX	/bin/echo "==============================================================================\n"
XX	/usr/bin/pg -p " [q=quit, space=more]: " LOGGEDonce
XX	/bin/echo "\n------------------------------------------------------------------------------"
XX	/bin/echo "\nSend mail to who: \c"
XX	read userans
XXfi
XX[ "$userans" = "" ] && exit
XXmsgcnt=`cat msgno`
XXmsgid=`expr $msgcnt + 1`
XXecho "FROM: "`cat LOGGEDonce | /bin/grep $bbsuser` >./tmp/$msgid.$userans
XXecho "DATE: "`date` >>./tmp/$msgid.$userans
XXecho "------------------------------------------\n" >>./tmp/$msgid.$userans
XX$EDITOR ./tmp/$msgid.$userans
XXecho "------------------------------------------\n" >>./tmp/$msgid.$userans
XXecho "\n(S)end or (A)bort the message: \c"
XXread ans
XX[ $ans = 's' ] && mv ./tmp/$msgid* ./msgs ;exit
XXrm ./tmp/*
XXcat $msgid >./msgno
SHAR_EOF
if test 1002 -ne "`wc -c < 'send.mail'`"
then
echo shar: error transmitting "'send.mail'" '(should have been 1002 characters)'
fi
chmod +x 'send.mail'
fi # end of overwriting check
echo shar: extracting "'sh'" '(80 characters)'
if test -f 'sh'
then
echo shar: will not over-write existing file "'sh'"
else
sed 's/^XX//' > 'sh' << \SHAR_EOF
XX/bin/echo "Yeah, *of course* I'd let you shell out. Sure!"
XX/bin/echo "bullsh*t"
SHAR_EOF
if test 80 -ne "`wc -c < 'sh'`"
then
echo shar: error transmitting "'sh'" '(should have been 80 characters)'
fi
chmod +x 'sh'
fi # end of overwriting check
echo shar: extracting "'subsystem.bbs'" '(584 characters)'
if test -f 'subsystem.bbs'
then
echo shar: will not over-write existing file "'subsystem.bbs'"
else
sed 's/^XX//' > 'subsystem.bbs' << \SHAR_EOF
XX#! /bin/sh
XX#
XX# bbs subsystem
XX#
XX# by Bob Kirkpatrick: Fri May 11 14:59:39 PDT 1990
XX.clear
XX/bin/echo "Today is "`date | /usr/bin/cut -c1-10`
XX/bin/cat ./user.menu
XX/bin/echo "#> \c"
XXread userans
XXcase $userans in
XX	1)	/bin/sh mail.system ;;
XX	2)	/bin/sh file.viewing ;;
XX	3)	/bin/sh file.xfer ;;
XX	4)	/bin/sh news.reader ;;
XX	5)	/bin/sh bull.system ;;
XX	6)	/bin/sh news.poster ;;
XX	7)	/bin/echo "Sorry, not available"
XX		/bin/sleep 3 ;;
XX	8)	/bin/echo "Sorry, not available"
XX		/bin/sleep 3 ;;
XX	9)	.clear
XX		/bin/sh sysop.chat ;;
XX	0)	.clear
XX		/bin/echo "Thanks for calling!"
XX		/bin/kill -9 0 ;;
XXesac
SHAR_EOF
if test 584 -ne "`wc -c < 'subsystem.bbs'`"
then
echo shar: error transmitting "'subsystem.bbs'" '(should have been 584 characters)'
fi
chmod +x 'subsystem.bbs'
fi # end of overwriting check
echo shar: extracting "'sysop.chat'" '(454 characters)'
if test -f 'sysop.chat'
then
echo shar: will not over-write existing file "'sysop.chat'"
else
sed 's/^XX//' > 'sysop.chat' << \SHAR_EOF
XX#
XX# sysop chat facility
XX#
XX# you should substitute your own chat facility if 'talk' isn't available
XX# on your system.
XX#
XXclear
XXecho "This utility will attempt to page the sysop (root)"
XXecho "if, after a reasonable number of retries (4), you get no response"
XXecho "you should abort."
XXecho " "
XXecho "To abort, or conclude the chat session, press CONTROL-C..."
XXecho " "
XXecho "press [ENTER] to continue. . .\c"
XXread userans
XXclear
XX/bin/sh  /usr/local/talk root
SHAR_EOF
if test 454 -ne "`wc -c < 'sysop.chat'`"
then
echo shar: error transmitting "'sysop.chat'" '(should have been 454 characters)'
fi
chmod +x 'sysop.chat'
fi # end of overwriting check
if test ! -d 'tmp'
then
	echo shar: creating directory "'tmp'"
	mkdir 'tmp'
fi
echo shar: entering directory "'tmp'"
cd 'tmp'
echo shar: done with directory "'tmp'"
cd ..
if test ! -d 'upload'
then
	echo shar: creating directory "'upload'"
	mkdir 'upload'
fi
echo shar: entering directory "'upload'"
cd 'upload'
echo shar: done with directory "'upload'"
cd ..
echo shar: extracting "'user.menu'" '(477 characters)'
if test -f 'user.menu'
then
echo shar: will not over-write existing file "'user.menu'"
else
sed 's/^XX//' > 'user.menu' << \SHAR_EOF
XX
XX               SYSTEM MAIN MENU
XX==============================================
XX[1] .. Mail Sub-System     [2] .. File Viewing
XX[3] .. File Xfer System    [4] .. uunet Reader
XX[5] .. Bulletin System     [6] .. News Posting
XX[7] .. C Development       [8] .. C Compiler
XX[9] .. Sysop Chat Page     [0] .. Exit/Logoff
XX==============================================
XXDog Ear's Systems ---- a Division of Brand - X
XX----------------------------------------------
XX
XX
XX
XX
XX[Main Menu] Command
SHAR_EOF
if test 477 -ne "`wc -c < 'user.menu'`"
then
echo shar: error transmitting "'user.menu'" '(should have been 477 characters)'
fi
chmod +x 'user.menu'
fi # end of overwriting check
echo shar: extracting "'user.welcome'" '(323 characters)'
if test -f 'user.welcome'
then
echo shar: will not over-write existing file "'user.welcome'"
else
sed 's/^XX//' > 'user.welcome' << \SHAR_EOF
XX
XXWelcome to Dog Ear.
XX
XXThe following bulletins are available:
XX
XX		A)	Available download protocols
XX			 documantation on up/downloading
XX			 files to/from this bbs.
XX
XX		B)	Archiving schemes and tools
XX			 documentation on compression
XX			 arc, zoo, zip, ...etc.
XX
XX		C)	System information and users
XX
XX		D)	The mail and news areas
XX
XX
XX
SHAR_EOF
if test 323 -ne "`wc -c < 'user.welcome'`"
then
echo shar: error transmitting "'user.welcome'" '(should have been 323 characters)'
fi
chmod +x 'user.welcome'
fi # end of overwriting check
#
# End of shell archive
#
exit 0
#
# safety net
exit 0
---------------------[cut here to EOF]------------------------------------
-- 
+---------------------------------------------------------------------------+
|Bob Kirkpatrick   *    Dog Ear'd Systems,  Spokane, WA    *  (509) 535-6575|   |                  *   uunet!isc-br!tau-ceti!dogear!bobk   *                |
+---------------------------------------------------------------------------+