@@ -56,15 +56,10 @@ type Config struct {
5656func main () {
5757 var cfg Config
5858 var verbose bool
59- var printVersion bool
6059 cmd := & cobra.Command {
6160 Use : "arduino-router" ,
6261 Long : "Arduino router for msgpack RPC service protocol" ,
6362 Run : func (cmd * cobra.Command , args []string ) {
64- if printVersion {
65- fmt .Println ("Arduino router v" + Version )
66- return
67- }
6863 if verbose {
6964 cfg .LogLevel = slog .LevelDebug
7065 } else {
@@ -80,12 +75,20 @@ func main() {
8075 },
8176 }
8277 cmd .Flags ().BoolVarP (& verbose , "verbose" , "v" , false , "Enable verbose logging" )
83- cmd .Flags ().BoolVar (& printVersion , "version" , false , "Print version information" )
8478 cmd .Flags ().StringVarP (& cfg .ListenTCPAddr , "listen-port" , "l" , "" , "Listening port for RPC services" )
8579 cmd .Flags ().StringVarP (& cfg .ListenUnixAddr , "unix-port" , "u" , "/var/run/arduino-router.sock" , "Listening port for RPC services" )
8680 cmd .Flags ().StringVarP (& cfg .SerialPortAddr , "serial-port" , "p" , "" , "Serial port address" )
8781 cmd .Flags ().IntVarP (& cfg .SerialBaudRate , "serial-baudrate" , "b" , 115200 , "Serial port baud rate" )
8882 cmd .Flags ().StringVarP (& cfg .MonitorPortAddr , "monitor-port" , "m" , "127.0.0.1:7500" , "Listening port for MCU monitor proxy" )
83+
84+ cmd .AddCommand (& cobra.Command {
85+ Use : "version" ,
86+ Long : "Print version information" ,
87+ Run : func (cmd * cobra.Command , args []string ) {
88+ fmt .Println ("Arduino Router v" + Version )
89+ },
90+ })
91+
8992 if err := cmd .Execute (); err != nil {
9093 slog .Error ("Error executing command." , "error" , err )
9194 }
@@ -160,6 +163,11 @@ func startRouter(cfg Config) error {
160163 // Register HCI API methods
161164 hciapi .Register (router )
162165
166+ // Register monitor version API methods
167+ router .RegisterMethod ("$/version" , func (_ context.Context , _ * msgpackrpc.Connection , _ []any ) (any , any ) {
168+ return Version , nil
169+ })
170+
163171 // Register monitor API methods
164172 if err := monitorapi .Register (router , cfg .MonitorPortAddr ); err != nil {
165173 slog .Error ("Failed to register monitor API" , "err" , err )
0 commit comments