package main import "log" import "os" import "time" import "net" import "fmt" import "bufio" import "github.com/gookit/config" import "git.wit.com/wit/gui" // import "github.com/davecgh/go-spew/spew" // reminder to use this for JSON // https://github.com/tidwall/gjson // value := gjson.Get(json, "name.last") // println(value.String()) // value := gjson.Get(json, friends.#[last=="Murphy"].first) // use mergo to merge structs // import "github.com/imdario/mergo" // mergo.Merge(&dest, src) // always sorted slice (new project) // https://github.com/yaa110/sslice const ( CONN_HOST = "v000185.testing.com.customers.wprod.wit.com" CONN_PORT = "3333" CONN_PROTO = "tcp" ) func socketToWIT() { // connect to this socket conn, err := net.Dial(CONN_PROTO, CONN_HOST+":"+CONN_PORT) if err != nil { log.Println(CONN_HOST, CONN_PORT, CONN_PROTO) log.Println(err) log.Println("socket connect failed. Not sure what to do here. os.Exit() ?") return } // read in input from stdin reader := bufio.NewReader(os.Stdin) fmt.Fprintf(conn,"librem15.lab.wit.com\n") for { fmt.Print("Text to send: ") text, _ := reader.ReadString('\n') // send to socket fmt.Fprintf(conn, text + "\n") // listen for reply message, _ := bufio.NewReader(conn).ReadString('\n') fmt.Print("Message from server: "+message) } } func main() { parseConfig() go gui.DoGUI() // // NOTE: This needs to be something long like 2 seconds. // Not sure way. Otherwise it will hang GTK // log.Println("Sleep for 2 seconds, then try to add new tabs") time.Sleep(1 * 1000 * 1000 * 1000) gui.AddChoosersDemo() log.Println("Sleep for 2 seconds, then try to add new tabs") time.Sleep(1 * 1000 * 1000 * 1000) gui.AddTableTab("jcarr", 7, "fire") log.Println("Sleep for 1000 seconds, then try to add new tabs") time.Sleep(1000 * 1000 * 1000 * 1000) /* // THIS CRASHES FOR SOME REASON log.Println("Sleep for 10 seconds, then try to add new tabs") time.Sleep(10 * 1000 * 1000 * 1000) gui.AddEntriesDemo() */ log.Println("Sleep for 2 seconds, then try to add new tabs") time.Sleep(2 * 1000 * 1000 * 1000) rows := 4 for account, _ := range config.StringMap("cloud") { port := config.String("cloud." + account + ".port") proto := config.String("cloud." + account + ".proto") hostname := config.String("cloud." + account + ".hostname") fmt.Println(hostname, port, proto) gui.AddTableTab(account, rows, hostname) rows = 700 log.Println("Sleep for 10 seconds, then add next table") time.Sleep(10 * 1000 * 1000 * 1000) } for { log.Println("Sleep for 10 seconds, then try to establish connection to WIT") time.Sleep(10 * 1000 * 1000 * 1000) // for now, loop until I figure out what to actually do socketToWIT() } } // Exit and write out the config // (in yaml and json I guess.) // switch to json once it can be made human readable func onExit() { log.Println("Sleep for 1 second") time.Sleep(1 * 1000 * 1000 * 1000) f, err := os.Create("/tmp/cloud-control-panel.yaml") if err == nil { config.DumpTo(f, "yaml") } f, err = os.Create("/tmp/cloud-control-panel.json") if err == nil { config.DumpTo(f, "json") } os.Exit(0) }