Proposal 1 Command line tool - GobySoft/goby3 GitHub Wiki

It would be great to have a unified goby command line tool, with various subcommands, e.g.

  • goby publish: Publish a message from the command line
  • goby subscribe: Latch for some period of time and write the subscription to the terminal window
  • goby log: Tools for reading the goby_logger files
  • etc.

goby publish

It should be possible to publish a message from the command line. This could be the API used by shell scripts, web GUIs, etc. for interacting with a Goby3-based system.

I envision a tool that reads from standard input and is invoked something like:

goby publish --platform my_vehicle [--transport IPC] [--layer interprocess] --group asdf --scheme protobuf --type foo.protobuf.Message "a: 4 b: 6 c: 7"

It would be up to the sender of the message to pack it in the appropriate format corresponding to the scheme. For Protobuf, this would be TextFormat.

goby subscribe

Subscribe to the given group(s)/scheme(s)/type(s) for a period of time (or until CTRL-C) and write them to the terminal window. Might need to be ncurses based.

goby subscribe --platform my_vehicle [--transport IPC] [--layer interprocess] --group "nav::.*" --scheme protobuf --type ".*"

goby log

Unified front-end to goby_log_tool and goby_hdf5.