From d9fc51c65d3324f0b9d33aabf8b436c53be4ab03 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 23 Aug 2018 15:02:26 +0200 Subject: [PATCH] Add new portbase.go base program --- portbase.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 portbase.go diff --git a/portbase.go b/portbase.go new file mode 100644 index 0000000..842772e --- /dev/null +++ b/portbase.go @@ -0,0 +1,47 @@ +package main + +import ( + "os" + "os/signal" + "syscall" + + "github.com/Safing/portbase/info" + "github.com/Safing/portbase/log" + "github.com/Safing/portbase/modules" + // include packages here +) + +func main() { + + // Set Info + info.Set("Portbase", "0.0.1") + + // Start + err := modules.Start() + if err != nil { + if err == modules.ErrCleanExit { + os.Exit(0) + } else { + os.Exit(1) + } + } + + // Shutdown + // catch interrupt for clean shutdown + signalCh := make(chan os.Signal) + signal.Notify( + signalCh, + os.Interrupt, + syscall.SIGHUP, + syscall.SIGINT, + syscall.SIGTERM, + syscall.SIGQUIT, + ) + select { + case <-signalCh: + log.Warning("main: program was interrupted, shutting down.") + modules.Shutdown() + case <-modules.ShuttingDown(): + } + +}