Files
go-caatsm/cmd/main/main.go
T

62 lines
1.2 KiB
Go
Raw Normal View History

2024-07-19 20:02:18 +08:00
package main
import (
"caatsm/internal/config"
2024-07-30 10:25:59 +08:00
"caatsm/internal/handlers"
"caatsm/internal/nats"
2024-07-24 11:07:04 +08:00
"caatsm/pkg/utils"
"os"
2024-07-22 12:42:30 +08:00
"fmt"
"github.com/urfave/cli/v2"
2024-07-19 20:02:18 +08:00
)
func main() {
app := setupApp()
if err := app.Run(os.Args); err != nil {
fmt.Printf("Error running application: %v\n", err)
}
}
func setupApp() *cli.App {
app := &cli.App{
Name: "serial-read",
Usage: "A serial port reading CLI application",
Before: func(c *cli.Context) error {
// parameter = config.GetParameter()
return nil
},
Commands: []*cli.Command{
{
Name: "listen",
Usage: "Listen to nats messages",
Action: executeListen,
},
},
}
return app
}
func executeListen(c *cli.Context) error {
2024-07-19 20:02:18 +08:00
cfg, err := config.LoadConfig()
2024-07-24 11:07:04 +08:00
log := utils.GetLogger()
2024-07-19 20:02:18 +08:00
if err != nil {
2024-07-22 12:42:30 +08:00
fmt.Printf("Error loading configuration: %v\n", err)
return err
2024-07-19 20:02:18 +08:00
}
if err := config.ValidateConfig(cfg); err != nil {
2024-07-22 12:42:30 +08:00
fmt.Printf("Invalid configuration: %v\n", err)
return err
2024-07-19 20:02:18 +08:00
}
2024-07-22 12:42:30 +08:00
fmt.Println("Loaded configuration successfully")
2024-07-19 20:02:18 +08:00
2024-07-24 11:07:04 +08:00
log.Info("Starting nats subscriber")
2024-07-30 10:25:59 +08:00
handler := handlers.NewNatsHandler(cfg)
nats.Subscribe(cfg, &handlers.PlainTextMarshaler{}, handler)
return nil
2024-07-19 20:02:18 +08:00
}