diff options
| -rw-r--r-- | cmd/gorum/main.go | 7 | ||||
| -rw-r--r-- | internal/config/config.go | 1 | ||||
| -rw-r--r-- | internal/run.go | 15 |
3 files changed, 19 insertions, 4 deletions
diff --git a/cmd/gorum/main.go b/cmd/gorum/main.go index 72b0470..80827e9 100644 --- a/cmd/gorum/main.go +++ b/cmd/gorum/main.go @@ -4,7 +4,6 @@ import ( "context" "flag" "fmt" - "log" "os" "os/signal" "syscall" @@ -12,7 +11,7 @@ import ( "codeberg.org/snonux/gorum/internal" ) -const versionStr = "v0.0.0" +const versionStr = "v0.0.3" func main() { configFile := flag.String("cfg", "/etc/gorum.json", "The config file") @@ -30,11 +29,10 @@ func main() { defer cancel() if err := internal.Run(ctx, *configFile, *loopIntervalS); err != nil { - log.Fatal(err) + panic(err) } <-ctx.Done() - log.Println("good bye!") } func contextWithSignal() (context.Context, context.CancelFunc) { @@ -44,6 +42,7 @@ func contextWithSignal() (context.Context, context.CancelFunc) { ch := make(chan os.Signal, 1) signal.Notify(ch, os.Interrupt, syscall.SIGTERM, syscall.SIGINT) <-ch + fmt.Println("Received shutdown signal") cancel() }() diff --git a/internal/config/config.go b/internal/config/config.go index f04aa57..09ccb7e 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -25,6 +25,7 @@ func (n Node) Address() string { type Config struct { StateDir string + LogToSyslog bool `json:"LogToSyslog,omitempty"` ScoreFile string WinnerFile string Address string diff --git a/internal/run.go b/internal/run.go index 7a51f6c..2439928 100644 --- a/internal/run.go +++ b/internal/run.go @@ -2,6 +2,8 @@ package internal import ( "context" + "log" + "log/syslog" "codeberg.org/snonux/gorum/internal/client" "codeberg.org/snonux/gorum/internal/config" @@ -18,11 +20,24 @@ func Run(ctx context.Context, configFile string, loopIntervalS int64) error { conf.LoopIntervalS = loopIntervalS } + if conf.LogToSyslog { + syslogWriter, err := syslog.New(syslog.LOG_DAEMON, "gorum") + if err != nil { + return err + } + log.SetOutput(syslogWriter) + + } + + log.Println("Starting everything up!") + quo := quorum.New(conf) myVoteCh := quo.Start(ctx) server.Start(ctx, conf, quo) client.Start(ctx, conf, myVoteCh) <-ctx.Done() + log.Println("Good bye and have a nice day!") + return nil } |
