package main import "log" // import "fmt" import "time" import "runtime" import "os/exec" import "strings" import "git.wit.com/wit/gui" // import pb "git.wit.com/wit/witProtobuf" import "github.com/davecgh/go-spew/spew" // import "github.com/andlabs/ui" // import _ "github.com/andlabs/ui/winmanifest" // import pb "git.wit.com/wit/witProtobuf" func debugClick(b *gui.GuiButton) { log.Println("debugClick() START") gw := b.Box.Window // if there is not an account, then go to 'make account' gw = gui.InitGuiWindow("debugClick() Box22", gw) log.Println("debugClick() AddGenericBox() START") box := gui.HardBox(gw, gui.Yaxis, "debugClick") log.Println("debugClick() AddGenericBox() END box =", box) makeButton(box, nil, nil, "Generate", "SUBDOMAIN", nil) gui.HorizontalBreak(box) makeButton(box, nil, nil, "Create Subdomain Account", "ADD", addSubdomainClick) box = gui.HardBox(gw, gui.Xaxis, "subdomain test") makeButton(box, nil, nil, "ping", "SUBDOMAIN", runPingClick) makeButton(box, nil, nil, "Cross platform shell test", "SUBDOMAIN", runTestExecClick) makeButton(box, nil, nil, "Generate 3", "SUBDOMAIN", nil) makeButton(box, nil, nil, "Generate 4", "SUBDOMAIN", nil) box = gui.NewBox(box, gui.Yaxis, "subdomain Y test") makeButton(box, nil, nil, "List all windows & tabs", "SUBDOMAIN", func (*gui.GuiButton) { log.Println("debugClick() Hide()") box := gw.BoxMap["MAINBOX"] box.Window.UiTab.Hide() }) makeButton(box, nil, nil, "Hide all tabs", "SUBDOMAIN", func (*gui.GuiButton) { log.Println("debugClick() Hide()") box := gw.BoxMap["MAINBOX"] box.Window.UiTab.Hide() }) makeButton(box, nil, nil, "Hide sleep Show", "SUBDOMAIN", func (*gui.GuiButton) { log.Println("debugClick() Hide()") box := gw.BoxMap["MAINBOX"] box.Window.UiTab.Hide() time.Sleep(2000 * time.Millisecond) box.Window.UiTab.Show() }) makeButton(box, nil, nil, "Destroy tab 0", "SUBDOMAIN", func (*gui.GuiButton) { log.Println("debugClick() Destroy(0)") box := gw.BoxMap["MAINBOX"] box.Window.UiTab.Delete(0) }) makeButton(box, nil, nil, "Generate 76", "SUBDOMAIN", nil) log.Println("debugClick() END box =", box) } func runPingClick(b *gui.GuiButton) { log.Println("runPingClick START") values, _ := b.Values.(*myButtonInfo) log.Println("runTestExecClick values.VM", values.VM) hostname := "localhost" if (values.VM != nil) { hostname = values.VM.Hostname } spew.Dump(b) var tmp []string tmp = append(tmp, "xterm", "-geometry", "120x30", "-e", "ping " + hostname + ";sleep 3") go runCommand(tmp) log.Println("runPingClick END") } func runTestExecClick(b *gui.GuiButton) { log.Println("runTestExecClick START") if runtime.GOOS == "linux" { go runSimpleCommand("xterm -report-fonts") } else if runtime.GOOS == "windows" { go runSimpleCommand("mintty.exe") } else { go runSimpleCommand("xterm") } log.Println("runTestExecClick END") } func runSimpleCommand(s string) { cmd := strings.TrimSpace(s) // this is like 'chomp' in perl cmdArgs := strings.Fields(cmd) runCommand(cmdArgs) } func runCommand(cmdArgs []string) { log.Println("runCommand() START", cmdArgs) process := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...) // process := exec.Command("xterm", "-e", "ping localhost") log.Println("runCommand() process.Start()") process.Start() log.Println("runCommand() process.Wait()") process.Wait() log.Println("runCommand() NEED TO CHECK THE TIME HERE TO SEE IF THIS WORKED") log.Println("runCommand() OTHERWISE INFORM THE USER") log.Println("runCommand() END") }