File: //usr/share/doc/conman-0.1.9.2/examples/boot_alpha.exp
#!/usr/bin/expect --
##
# $Id: boot_alpha.exp 500 2005-02-10 02:19:46Z dun $
# by Chris Dunlap <cdunlap@llnl.gov>
##
set env(PATH) "/bin:/usr/bin:/usr/local/bin"
source /usr/share/conman/conman.exp
source /usr/share/conman/alpha.exp
log_user 0
proc pre_boot_alpha {spawn_id output_id console} {
exec powerman -r $console
if {! [alpha_is_at_srm $spawn_id $output_id $console 150]} {
return 0
}
set cmds [list \
{set boot_osflags "ip=dhcp root=/dev/nfs console=ttyS0,19200"} \
{set eib0_mode Auto-Negotiate} \
{set eib0_protocols BOOTP} \
{set boot_reset OFF} \
{set auto_action halt} \
{set bootdef_dev eib0} \
]
foreach cmd $cmds {
alpha_do_srm_cmd $spawn_id $output_id $console 0 $cmd
}
return 1
}
proc boot_alpha {spawn_id output_id console} {
send_user "Booting $console.\n"
alpha_do_srm_cmd $spawn_id $output_id $console 0 "boot" 60
return 1
}
set consoles [conman_query $argv]
set n [llength $consoles]
if {$n == 0} {
send_error "Found no matching consoles.\n"
exit 1
} elseif {$n == 1} {
send_user "Resetting console [lindex $consoles 0].\n"
} else {
send_user "Resetting $n consoles.\n"
}
conman_run 128 "-j $argv" pre_boot_alpha
conman_run 4 "-j $argv" boot_alpha
exit 0