From 223f472f5b4078d976214215ec52c929308c67ab Mon Sep 17 00:00:00 2001 From: postmannen Date: Mon, 1 Feb 2021 11:13:38 +0100 Subject: [PATCH] chanced it into it's own package --- cmd/main.go | 33 +++++++++++++++++++++++++++++ main.go => publisher.go | 47 +++++++++-------------------------------- subscriber.go | 2 +- 3 files changed, 44 insertions(+), 38 deletions(-) create mode 100644 cmd/main.go rename main.go => publisher.go (87%) diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..707c577 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "flag" + "log" + "os" + + "github.com/RaaLabs/steward" +) + +func main() { + nodeName := flag.String("node", "0", "some unique string to identify this Edge unit") + brokerAddress := flag.String("brokerAddress", "0", "the address of the message broker") + modePublisher := flag.Bool("modePublisher", false, "set to true if it should be able to publish") + modeSubscriber := flag.Bool("modeSubscriber", false, "set to true if it should be able to subscribe") + flag.Parse() + + s, err := steward.NewServer(*brokerAddress, *nodeName) + if err != nil { + log.Printf("error: failed to connect to broker: %v\n", err) + os.Exit(1) + } + + if *modePublisher { + go s.RunPublisher() + } + + if *modeSubscriber { + go s.RunSubscriber() + } + + select {} +} diff --git a/main.go b/publisher.go similarity index 87% rename from main.go rename to publisher.go index 18cebaa..9acc008 100644 --- a/main.go +++ b/publisher.go @@ -1,13 +1,11 @@ // Notes: -package main +package steward import ( "bytes" "encoding/gob" - "flag" "fmt" "log" - "os" "sync" "time" @@ -62,9 +60,16 @@ type server struct { } // newServer will prepare and return a server type -func newServer(brokerAddress string) (*server, error) { +func NewServer(brokerAddress string, nodeName string) (*server, error) { + conn, err := nats.Connect(brokerAddress, nil) + if err != nil { + log.Printf("error: nats.Connect failed: %v\n", err) + } + return &server{ - processes: make(map[node]process), + thisNodeName: nodeName, + natsConn: conn, + processes: make(map[node]process), }, nil } @@ -220,35 +225,3 @@ func gobEncodePayload(m Message) ([]byte, error) { return buf.Bytes(), nil } - -func main() { - node := flag.String("node", "0", "some unique string to identify this Edge unit") - modePublisher := flag.Bool("modePublisher", false, "set to true if it should be able to publish") - modeSubscriber := flag.Bool("modeSubscriber", false, "set to true if it should be able to subscribe") - flag.Parse() - - s, err := newServer("localhost") - if err != nil { - log.Printf("error: failed to connect to broker: %v\n", err) - os.Exit(1) - } - - s.thisNodeName = *node - - // Create a connection to nats server - s.natsConn, err = nats.Connect("localhost", nil) - if err != nil { - log.Printf("error: nats.Connect failed: %v\n", err) - } - defer s.natsConn.Close() - - if *modePublisher { - go s.RunPublisher() - } - - if *modeSubscriber { - go s.RunSubscriber() - } - - select {} -} diff --git a/subscriber.go b/subscriber.go index fac915d..dba33c2 100644 --- a/subscriber.go +++ b/subscriber.go @@ -1,4 +1,4 @@ -package main +package steward import ( "bytes"