X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fdoor_client_zmq%2Fmain.go;h=7ce4fb809babac5a1226299ba712fd3ae3a87eac;hb=a87c91b7d4544703879b7ef6e472b863765e3949;hp=a49fb883ecbed1427a0e88956c2ce37bf6a5781d;hpb=9a37d1b81db952b8026ce0eeefeff871ea0075a7;p=svn42.git diff --git a/go/door_client_zmq/main.go b/go/door_client_zmq/main.go index a49fb88..7ce4fb8 100644 --- a/go/door_client_zmq/main.go +++ b/go/door_client_zmq/main.go @@ -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() } @@ -60,7 +58,7 @@ func main() { 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) @@ -72,29 +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 reply := <- cmd_chans.In() - 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)) } } }