Skip to content

Commit b9ee939

Browse files
committed
Added version command and router API
1 parent 3a4b461 commit b9ee939

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

main.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,10 @@ type Config struct {
5656
func 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

Comments
 (0)