summaryrefslogtreecommitdiffstats
path: root/kernel/networking/libvirt/common/autologin.exp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/networking/libvirt/common/autologin.exp')
-rwxr-xr-xkernel/networking/libvirt/common/autologin.exp43
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