Blob Blame History Raw
# Generic UNIX login script.
# Can be used to automatically login to almost every UNIX box.
#
	# Some variables.
	set a 0
	set b a
	print Trying to Login..
	# Skip initial 'send ""', it seems to matter sometimes..
	goto skip
loop1:
	# Send loginname not more than three times.
	send ""
	inc a
skip:
	if a > 3 goto failed1
	expect {
		"ogin:"
		"assword:"	send ""
		"NO CARRIER"	exit
		timeout 60	goto loop1
	}
loop2:
	send "$(LOGIN)"

	# Send password not more than three times.
	inc b
	if b > 3 goto failed1
	expect {
		"assword:"
		"ogin:"		goto loop2
		timeout 60	goto loop2
	}
	send "$(PASS)"
	# If we don't get "incorrect" within 3 seconds, it's probably OK.
	# If they ask for a terminal, we are logged in. Tell them we're
	# using vt100.
	# If we get the bash prompt, send them the screen geometry.
	expect {
		"TERM="		goto wantterm
		"incorrect"	goto loop1
		"bash$"		goto screengeom		
		timeout 3 	break
		"asswd"		break
	}
	exit
wantterm:
	send "vt100"
	exit
screengeom:
	send "stty rows $(TERMLIN) columns 80"
	# If you use a display mode with some other width than 80 columns,
	# you may want to use the following format. 
	#send "stty rows $(TERMLIN) columns $(COLUMNS)"
	exit
failed1:
	print \nLogin Failed (wrong password?)
	exit