cloud-control-panel/gui-debug.go

113 lines
3.5 KiB
Go

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")
}