diff options
Diffstat (limited to 'kernel/networking/libvirt/common/autologin.exp')
-rwxr-xr-x | kernel/networking/libvirt/common/autologin.exp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/kernel/networking/libvirt/common/autologin.exp b/kernel/networking/libvirt/common/autologin.exp new file mode 100755 index 0000000..609afc6 --- /dev/null +++ b/kernel/networking/libvirt/common/autologin.exp @@ -0,0 +1,43 @@ +#!/usr/bin/expect -f + +set login "root" +set password "redhat" + +set timeout -1 +set guest [lindex $argv 0] +set prompt "$login@.*\](%|#|\\\$) $" + +spawn virsh console $guest + +#login if needed +expect "Escape character is" +send "\r" +expect { + {login:} { send "$login\r" + expect { + {Password:} { send "$password\r" } + } + } + -re $prompt { send "\r"} + } + +expect -re $prompt + +#run command +for {set i 1} {$i < $argc} {incr i 1} { + set cmd [lindex $argv $i] + send "$cmd\r" + expect -re $prompt + sleep 1 +} + +#capture return code from last command +send "echo \$?\r" +expect -re "(\\d+)" { + set result $expect_out(1,string) +} + +#logout +send "exit\r" +expect "logout" +exit $result |