#!/usr/bin/expect

set timeout 5

if {$argc < 1} {
	puts "usage: run.exp \[shell] \[user]"
	exit 1
}
set shell     [lindex $argv 0]

if {$argc == 2} {
	spawn /usr/bin/chsh [lindex $argv 1]
} else {
	spawn /usr/bin/chsh
}

expect "Password: "
send "myuserF00barbaz\r"
expect "Changing the login shell for myuser"
expect "Enter the new value, or press ENTER for the default"
expect -re "Login Shell .*\]: "
send "$shell\r"
expect "$shell\r\n"
expect "chsh: $shell is an invalid shell\r\n"
expect {
	eof {
		if ([string compare $expect_out(buffer) ""]) {
			set fp [open "tmp/out" w]
			puts $fp "$expect_out(buffer)"
			puts "\nFAIL"
			exit 1
		}
	} default {
		puts "\nFAIL"
		exit 1
	}
}

puts "\nPASS"
exit 0

