Add wait5 and wait10 special keys for boot command.

This commit is contained in:
Brandon Liu 2013-07-02 10:31:22 -07:00
parent c23cd4310b
commit 471f33d02e
2 changed files with 37 additions and 1 deletions

View File

@ -59,6 +59,16 @@ func (s *stepTypeBootCommand) Run(state map[string]interface{}) multistep.StepAc
continue continue
} }
if code == "wait5" {
time.Sleep(5 * time.Second)
continue
}
if code == "wait10" {
time.Sleep(10 * time.Second)
continue
}
// Since typing is sometimes so slow, we check for an interrupt // Since typing is sometimes so slow, we check for an interrupt
// in between each character. // in between each character.
if _, ok := state[multistep.StateCancelled]; ok { if _, ok := state[multistep.StateCancelled]; ok {
@ -116,11 +126,23 @@ func scancodes(message string) []string {
var scancode []string var scancode []string
if strings.HasPrefix(message, "<wait>") { if strings.HasPrefix(message, "<wait>") {
log.Printf("Special code <wait> found, will sleep at this point.") log.Printf("Special code <wait> found, will sleep 1 second at this point.")
scancode = []string{"wait"} scancode = []string{"wait"}
message = message[len("<wait>"):] message = message[len("<wait>"):]
} }
if strings.HasPrefix(message, "<wait5>") {
log.Printf("Special code <wait5> found, will sleep 5 seconds at this point.")
scancode = []string{"wait5"}
message = message[len("<wait5>"):]
}
if strings.HasPrefix(message, "<wait10>") {
log.Printf("Special code <wait10> found, will sleep 10 seconds at this point.")
scancode = []string{"wait10"}
message = message[len("<wait10>"):]
}
if scancode == nil { if scancode == nil {
for specialCode, specialValue := range special { for specialCode, specialValue := range special {
if strings.HasPrefix(message, specialCode) { if strings.HasPrefix(message, specialCode) {

View File

@ -114,6 +114,20 @@ func vncSendString(c *vnc.ClientConn, original string) {
continue continue
} }
if strings.HasPrefix(original, "<wait5>") {
log.Printf("Special code '<wait5>' found, sleeping 5 seconds")
time.Sleep(5 * time.Second)
original = original[len("<wait5>"):]
continue
}
if strings.HasPrefix(original, "<wait10>") {
log.Printf("Special code '<wait10>' found, sleeping 10 seconds")
time.Sleep(10 * time.Second)
original = original[len("<wait10>"):]
continue
}
for specialCode, specialValue := range special { for specialCode, specialValue := range special {
if strings.HasPrefix(original, specialCode) { if strings.HasPrefix(original, specialCode) {
log.Printf("Special code '%s' found, replacing with: %d", specialCode, specialValue) log.Printf("Special code '%s' found, replacing with: %d", specialCode, specialValue)