- interval := time.Second
- sigChan := make(chan os.Signal, 1)
- done := make(chan struct{})
- defer close(done)
- termboxChan := new_tb_chan()
-
- signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
-
- ticker := time.NewTicker(interval) // generate a periodic signal
-
- state.Setup(get_db_handle())
-
- finished := false
- for !finished {
- select {
- case <-done:
- fmt.Println("exiting")
- finished = true
- case sig := <-sigChan:
- fmt.Println("Caught a signal", sig)
- done <- struct{}{}
- case <-ticker.C:
- state.Display()
- case event := <-termboxChan:
- // switch on event type
- switch event.Type {
- case termbox.EventKey: // actions depend on key
- switch event.Key {
- case termbox.KeyCtrlZ, termbox.KeyCtrlC, termbox.KeyEsc:
- finished = true
- case termbox.KeyTab: // tab - change display modes
- state.DisplayNext()
- }
- switch event.Ch {
- case '-': // decrease the interval if > 1
- if interval > time.Second {
- ticker.Stop()
- interval -= time.Second
- ticker = time.NewTicker(interval)
- }
- case '+': // increase interval by creating a new ticker
- ticker.Stop()
- interval += time.Second
- ticker = time.NewTicker(interval)
- case 'h': // help
- state.SetHelp(!state.Help())
- case 'q': // quit
- finished = true
- case 't': // toggle between absolute/relative statistics
- state.SetWantRelativeStats(!state.WantRelativeStats())
- case 'z': // reset the statistics to now by taking a query of current values
- state.ResetDBStatistics()
- }
- case termbox.EventResize: // set sizes
- state.ScreenSetSize(event.Width, event.Height)
- case termbox.EventError: // quit
- log.Fatalf("Quitting because of termbox error: \n%s\n", event.Err)
+ if *flag_host != "" || *flag_socket != "" {
+ lib.Logger.Println("--host= or --socket= defined")
+ var components = make(map[string]string)
+ if *flag_host != "" && *flag_socket != "" {
+ fmt.Println(lib.MyName() + ": Do not specify --host and --socket together")
+ os.Exit(1)
+ }
+ if *flag_host != "" {
+ components["host"] = *flag_host
+ }
+ if *flag_port != 0 {
+ if *flag_socket == "" {
+ components["port"] = fmt.Sprintf("%d", *flag_port)
+ } else {
+ fmt.Println(lib.MyName() + ": Do not specify --socket and --port together")
+ os.Exit(1)