Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
#!path/to/expect
##globals
set env(TERM) vt100
set timeout 300
#log_user 0
#exp_internal 1
#log_file "mylogfile"
set appname [lindex $argv 0]
set target [lindex $argv 1]
array set commands {
1 "sh proc\r\n"
2 "sh mem\r\n"
3 "sh ip route\r\n"
4 "sh ip ospf database\r\n"
}
array set devinfo {}
array set prompts {
login "\[Ll\]ogin.*"
loginstring "username"
passwd ".*assw.*"
ppass "mypasswd"
command ".*>.*"
}
proc dump_info {aname} {
global devinfo
parray devinfo
return 0
}
proc do_target_action {list} {
global commands prompts devinfo expect_out timeout
set cnt 1
foreach p $list {
if {![eof $p]} {
while {$cnt < [array size commands]} {
send -i $p "$commands($cnt)\r\n"
expect -i $p -re "$prompts(command)" {
set devinfo($p,$cnt) $expect_out(buffer)
}
incr cnt
}
} else {
send_user "spawn id $p is closed\n"
}
}
return 0
}
set cnt 0
if {[llength $argv] == 2} {
send_user "Starting [info script] at [exec date], tclstamp = [clock seconds]\n"
spawn -noecho $appname $target
lappend id $spawn_id
expect {
-re "$login" {
send_user "sending login string $prompts(loginstring)\n"
send "$prompts(loginstring)\r"
exp_continue
}
-re "$passwd" {
send_user "sending passwd...\n"
send "$prompts(ppass)\r"
exp_continue
}
-re "$command" {
send_user "got login "
do_target_action $id
dump_info
send_user "All done..quitting\n"
catch {close ; wait}
}
eof {
send_user "Caught abend for $spawn_id at
[clock seconds]..exiting\n"
exit
}
timeout {
send_user "Could not connect with $target,
using $appname...last read was
$expect_out(buffer) tcl stamp = [clock
seconds]\n"
exit
}
} else {
send_user "Improper format for [info script]:
ex: [info script] applicationname targethost\n"
exit
}