132 lines
3.1 KiB
Go
132 lines
3.1 KiB
Go
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)
|
|
}
|