#!xchat
# @(#) Login.VMS V1.1 Tue Sep  1 13:24:54 1992 (Bob Denny)
#
#
# xchat script for logging into a VMS system.  If no VMS password
# parameter supplied, skips password phase of VMS login. If syspass
# parameter given, will go through steps needed to log into a VMS
# system where a "system password" was set on the port.
#
# Cannot handle situation where system password is required but
# no password needed.
#
#
# Usage:
#	xchat Login.VMS username [ password [ syspass ] ]
#
# Uncomment the lines starting with "###" to get debug logging.
#
start:
###	dbgfile	Login.Log
###	dbgset	15
	sleep	2000			# Wait 2 seconds
	zero
	flush				# Flush typeahead
	ifnstr	login		2	# Skip sys passwd if not given
#
# Need system password. Send <CR> to get bell.
# Try 5 times at 2 sec. intervals. Skip to do
# username if we see "Username:".
#
syspass:
	count
	ifgtr	nobell		5	# Fail after 5 tries
	send	\r
	timeout	syspass		2000	# Wait 2 sec. and try again
	expect gotbell		\007
	expect gotlogin		Username:
#
# Got the bell. Send the system password. Repeat 5 times
# at 2 sec. intervals. Fail if we don't get Username:
#
gotbell:
	zero
	sleep 2000
l1:
	count
	ifgtr	nologin		5	# Fail after 5 tries
	sendstr	2
	send	\r
	timeout	l1		2000	# Wait 2 sec. and try again
	expect	gotlogin		Username:
#
# Start here if no system password supplied. 
# Send <CR> until we get Username: Try 5 times at 2 sec. intervals.
#
login:
	count
	ifgtr	nologin		5	# Fail after 5 tries
	send	\r
	timeout	login		2000	# Wait 2 sec. and try again
	expect	gotlogin	Username:
#
# Got VMS "Username:" prompt. Send the username. If a password
# was given, wait for the "Password:" prompt. Die after 10 seconds.
# if no password was given, we're done!
#
gotlogin:
	sendstr	0
	send	\r
	ifnstr	done		1
	timeout	nopasswd	10000
	expect	gotpasswd	Password:
#
# Got VMS "Password:" prompt. Send the password and we're done!
#
gotpasswd:
	sendstr	1
	send	\r
#
# Success!
#
done:
	success
#
# ERROR HANDLERS
#
nobell:
	logerr	No VMS system password prompt (bell)
	failed
nologin:
	logerr	No VMS Username: prompt
	failed
nopasswd:
	logerr	No VMS Password: prompt.
	failed

