removed kicad-libs and teenstep after moving to github
[svn42.git] / go / door_client_zmq / main.go
index 193c643..7ce4fb8 100644 (file)
@@ -17,17 +17,15 @@ import (
 var (
     cmd_port_ string
     sub_port_ string
+    cmd_method_ string
+    cmd_user_ string
 )
 
-func usage() {
-    fmt.Fprintf(os.Stderr, "Usage: door_client_zmq\n")
-    flag.PrintDefaults()
-}
-
 func init() {
-    flag.StringVar(&cmd_port_, "cmdport", "tcp://127.0.0.1:3232", "zmq command socket path")
-    flag.StringVar(&sub_port_, "pubport", "pgm://233.252.1.42:4242", "zmq subscribe/listen socket path")
-    flag.Usage = usage
+    flag.StringVar(&cmd_port_, "cmdport", "ipc:///run/tuer/door_cmd.ipc", "zmq command socket path")
+    flag.StringVar(&sub_port_, "pubport", "tcp://torwaechter.realraum.at:4242", "zmq subscribe/listen socket path")
+    flag.StringVar(&cmd_method_, "method", "", "zmq cmd method")
+    flag.StringVar(&cmd_user_, "usernick", "", "zmq cmd user identity")
     flag.Parse()
 }
 
@@ -55,11 +53,12 @@ func ByteArrayToString(bb [][]byte) string {
 }
 
 func main() {
-    cmd_chans, sub_chans := ZmqsInit(cmd_port_, sub_port_)
+    zmqctx, cmd_chans, sub_chans := ZmqsInit(cmd_port_, sub_port_)
     defer cmd_chans.Close()
     defer sub_chans.Close()
+    defer zmqctx.Close()
     var listen bool
-    var ignore_next bool
+    var ignore_next uint = 0
 
     user_input_chan := make(chan [][]byte, 1)
     go LineReader(user_input_chan, os.Stdin)
@@ -71,31 +70,30 @@ func main() {
             if input_open {
                 if len(input) == 0 { continue }
                  switch string(input[0]) {
+                    case "help", "?":
+                        fmt.Println("Available Commands: help, listen, quit. Everything else is passed through to door daemon")
                     case "listen":
                         listen = true
-                        fmt.Println("Now listening")
+                        fmt.Println("Now listening, @ are broadcasts")
                     case "quit":
                         os.Exit(0)
                     default:
-                        ignore_next = true
+                        ignore_next = 2
                         cmd_chans.Out() <- input
-                        log.Print("input sent")
                         reply := <- cmd_chans.In()
-                        log.Print("reply received")
-                        fmt.Println(ByteArrayToString(reply))
+                        fmt.Println(">",ByteArrayToString(reply))
                 }
             } else {
                 os.Exit(0)
             }
         case pubsubstuff := <- sub_chans.In():
-            log.Print("pubsubstuff",pubsubstuff)
             if len(pubsubstuff) == 0 { continue}
-            if ignore_next {
-                ignore_next = false
+            if ignore_next > 0 {
+                ignore_next--
                 continue
             }
             if listen {
-                fmt.Println(pubsubstuff)
+                fmt.Println("@",ByteArrayToString(pubsubstuff))
             }
         }
     }