From be7e6b093a5181c95ec87dbc07a77cf003f3b128 Mon Sep 17 00:00:00 2001 From: maze Date: Mon, 23 Feb 2026 15:51:35 +0100 Subject: [PATCH] Move internal/cmd to cmd --- {internal/cmd => cmd}/all.go | 0 {internal/cmd => cmd}/config.go | 0 cmd/hamview-collector/main.go | 2 +- cmd/hamview-receiver/Dockerfile | 8 --- cmd/hamview-receiver/main.go | 49 ----------------- cmd/hamview-receiver/run_aprsis.go | 77 --------------------------- cmd/hamview-receiver/run_meshcore.go | 79 ---------------------------- cmd/hamview-server/main.go | 2 +- cmd/import-letsmesh-nodes/main.go | 2 +- {internal/cmd => cmd}/logger.go | 0 10 files changed, 3 insertions(+), 216 deletions(-) rename {internal/cmd => cmd}/all.go (100%) rename {internal/cmd => cmd}/config.go (100%) delete mode 100644 cmd/hamview-receiver/Dockerfile delete mode 100644 cmd/hamview-receiver/main.go delete mode 100644 cmd/hamview-receiver/run_aprsis.go delete mode 100644 cmd/hamview-receiver/run_meshcore.go rename {internal/cmd => cmd}/logger.go (100%) diff --git a/internal/cmd/all.go b/cmd/all.go similarity index 100% rename from internal/cmd/all.go rename to cmd/all.go diff --git a/internal/cmd/config.go b/cmd/config.go similarity index 100% rename from internal/cmd/config.go rename to cmd/config.go diff --git a/cmd/hamview-collector/main.go b/cmd/hamview-collector/main.go index c9100c1..c036970 100644 --- a/cmd/hamview-collector/main.go +++ b/cmd/hamview-collector/main.go @@ -11,7 +11,7 @@ import ( "git.maze.io/go/ham/protocol" "git.maze.io/ham/hamview" - "git.maze.io/ham/hamview/internal/cmd" + "git.maze.io/ham/hamview/cmd" ) var logger *logrus.Logger diff --git a/cmd/hamview-receiver/Dockerfile b/cmd/hamview-receiver/Dockerfile deleted file mode 100644 index b882683..0000000 --- a/cmd/hamview-receiver/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM alpine:3 -ARG TARGETARCH -ARG TARGETVARIANT -COPY ./etc /etc/hamview -COPY ./build/hamview-receiver-${$TARGETARCH}${TARGETVARIANT#v} /opt/hamview/bin/hamview-receiver -WORKDIR /opt/hamview -ENTRYPOINT ["bin/hamview-receiver"] -CMD [ "protocol" ] diff --git a/cmd/hamview-receiver/main.go b/cmd/hamview-receiver/main.go deleted file mode 100644 index f1ce96e..0000000 --- a/cmd/hamview-receiver/main.go +++ /dev/null @@ -1,49 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "os" - - "github.com/sirupsen/logrus" - "github.com/urfave/cli/v3" - - "git.maze.io/ham/hamview/internal/cmd" -) - -var logger *logrus.Logger - -func main() { - cmd := &cli.Command{ - Name: "hamview-receiver", - Usage: "Receiver for HAM radio protocols", - Action: func(context.Context, *cli.Command) error { - fmt.Println("boom! I say!") - return nil - }, - Flags: cmd.AllFlags("hamview-receiver.yaml"), - Commands: []*cli.Command{ - { - Name: "aprsis", - Usage: "Start an APRS-IS proxy", - Before: cmd.ConfigureLogging(&logger), - Action: runAPRSIS, - }, - { - Name: "meshcore", - Usage: "Start a MeshCore receiver", - Before: cmd.ConfigureLogging(&logger), - Action: runMeshCore, - }, - }, - } - - if err := cmd.Run(context.Background(), os.Args); err != nil { - log.Fatal(err) - } -} - -func waitForInterrupt() error { - return cmd.WaitForInterrupt(logger, "receiver") -} diff --git a/cmd/hamview-receiver/run_aprsis.go b/cmd/hamview-receiver/run_aprsis.go deleted file mode 100644 index 2a172c3..0000000 --- a/cmd/hamview-receiver/run_aprsis.go +++ /dev/null @@ -1,77 +0,0 @@ -package main - -import ( - "context" - - "github.com/urfave/cli/v3" - - "git.maze.io/go/ham/protocol/aprs/aprsis" - - "git.maze.io/ham/hamview" - "git.maze.io/ham/hamview/internal/cmd" -) - -type aprsisConfig struct { - Broker hamview.BrokerConfig `yaml:"broker"` - Receiver hamview.APRSISConfig `yaml:"receiver"` - Include []string `yaml:"include"` -} - -func (config *aprsisConfig) Includes() []string { - includes := config.Include - config.Include = nil - return includes -} - -func runAPRSIS(ctx context.Context, command *cli.Command) error { - var config = aprsisConfig{ - Receiver: hamview.APRSISConfig{ - Listen: hamview.DefaultAPRSISListen, - Server: hamview.DefaultAPRSISServer, - }, - } - if err := cmd.Load(logger, command.String(cmd.FlagConfig), &config); err != nil { - return err - } - - logger.Infof("receiver: starting APRS-IS proxy on tcp://%s to tcp://%s", - config.Receiver.Listen, - config.Receiver.Server) - proxy, err := aprsis.NewProxy(config.Receiver.Listen, config.Receiver.Server) - if err != nil { - return err - } - - proxy.OnClient = func(callsign string, client *aprsis.ProxyClient) { - go receiveAPRSIS(&config.Broker, callsign, client) - } - - return waitForInterrupt() -} - -func receiveAPRSIS(config *hamview.BrokerConfig, callsign string, client *aprsis.ProxyClient) { - defer client.Close() - - broker, err := hamview.NewBroker(config) - if err != nil { - logger.Errorf("receiver: can't setup to broker: %v", err) - return - } - defer broker.Close() - - info := client.Info() // TODO: enrich info from config? - - if err = broker.StartRadio("aprs", info); err != nil { - logger.Fatalf("receiver: can't start broker: %v", err) - return - } - - logger.Infof("receiver: start receiving packets from station: %s", callsign) - for packet := range client.RawPackets() { - logger.Debugf("aprs packet: %#+v", packet) - if err := broker.PublishPacket("aprs/packet", packet); err != nil { - logger.Error(err) - } - } - logger.Info("receiver: stopped receiving packets from station: %s", callsign) -} diff --git a/cmd/hamview-receiver/run_meshcore.go b/cmd/hamview-receiver/run_meshcore.go deleted file mode 100644 index d54fa99..0000000 --- a/cmd/hamview-receiver/run_meshcore.go +++ /dev/null @@ -1,79 +0,0 @@ -package main - -import ( - "context" - - "github.com/urfave/cli/v3" - - "git.maze.io/go/ham/protocol" - "git.maze.io/go/ham/protocol/meshcore" - - "git.maze.io/ham/hamview" - "git.maze.io/ham/hamview/internal/cmd" -) - -type meshCoreConfig struct { - Broker hamview.BrokerConfig `yaml:"broker"` - Receiver hamview.MeshCoreConfig `yaml:"receiver"` - Include []string `yaml:"include"` -} - -func (config *meshCoreConfig) Includes() []string { - includes := config.Include - config.Include = nil - return includes -} - -func runMeshCore(ctx context.Context, command *cli.Command) error { - var config meshCoreConfig - if err := cmd.Load(logger, command.String(cmd.FlagConfig), &config); err != nil { - return err - } - - broker, err := hamview.NewBroker(&config.Broker) - if err != nil { - return err - } - defer broker.Close() - - receiver, err := hamview.NewMeshCoreReceiver(&config.Receiver) - if err != nil { - return err - } - defer receiver.Close() - - info := receiver.Info() // TODO: enrich info from config? - if err = broker.StartRadio(protocol.MeshCore, info); err != nil { - logger.Fatalf("receiver: can't start broker: %v", err) - return err - } - - // Trace scheduler - //go receiver.RunTraces() - - // Packet decoder - go func() { - logger.Info("receiver: start receiving packets") - for packet := range receiver.RawPackets() { - if len(packet.Raw) >= 1 { - var ( - header = packet.Raw[0] - version = (header >> 6) & 0x03 - routeType = meshcore.RouteType(header & 0x03) - payloadType = meshcore.PayloadType((header >> 2) & 0x0F) - ) - logger.Debugf("meshcore packet: %d %s %s: %d bytes", - version, - routeType, - payloadType, - len(packet.Raw)) - } - if err = broker.PublishPacket("meshcore/packet", packet); err != nil { - logger.Errorf("receiver: failed to publish packet: %v", err) - } - } - logger.Warn("receiver: closing") - }() - - return waitForInterrupt() -} diff --git a/cmd/hamview-server/main.go b/cmd/hamview-server/main.go index 4e78437..72db612 100644 --- a/cmd/hamview-server/main.go +++ b/cmd/hamview-server/main.go @@ -8,7 +8,7 @@ import ( "github.com/urfave/cli/v3" "git.maze.io/ham/hamview" - "git.maze.io/ham/hamview/internal/cmd" + "git.maze.io/ham/hamview/cmd" ) var logger = logrus.New() diff --git a/cmd/import-letsmesh-nodes/main.go b/cmd/import-letsmesh-nodes/main.go index c049c5f..7ed3f61 100644 --- a/cmd/import-letsmesh-nodes/main.go +++ b/cmd/import-letsmesh-nodes/main.go @@ -14,7 +14,7 @@ import ( "git.maze.io/go/ham/protocol/meshcore" "git.maze.io/ham/hamview" - "git.maze.io/ham/hamview/internal/cmd" + "git.maze.io/ham/hamview/cmd" _ "github.com/cridenour/go-postgis" // PostGIS support _ "github.com/lib/pq" // PostgreSQL support diff --git a/internal/cmd/logger.go b/cmd/logger.go similarity index 100% rename from internal/cmd/logger.go rename to cmd/logger.go