Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func Launch(vbox *VBoxSpec, statusch chan<- *VmStatus, quitch <-chan bool) {
- go func() {
- vboxPath := main.Config["VboxPath"]
- vboxHeadlessBin := fmt.Sprintf("%s/VBoxHeadless", vboxPath)
- statusch <- VmStatus{vbox, VMSTATUS_LAUNCHING}
- var stdoutFilePtr *File
- pid, err := os.ForkExec(vboxHeadlessBin,
- []string{"-s", "winxp", "-v", "on", "-p", "12345"},
- []string{},
- []*File{stdoutFilePtr}
- vboxPath)
- stdout := readerToChannel(*stdoutFilePtr)
- stdoutBuf := bytes.NewBuffer(make([]byte, 0, 256))
- stdoutScanner := SOME_SCANNER(stdoutBuf)
- select {
- case s := <-stdout:
- stdoutBuf.Write(s)
- if stdoutScanner.hasNextLine() {
- // etc.
- }
- case <-quitch:
- // Send signal, wait and clean up
- }
- }()
- }
Add Comment
Please, Sign In to add comment