summaryrefslogtreecommitdiff
path: root/cmd/dserver
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/dserver')
-rw-r--r--cmd/dserver/main.go37
1 files changed, 19 insertions, 18 deletions
diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go
index bc3cb91..5788a87 100644
--- a/cmd/dserver/main.go
+++ b/cmd/dserver/main.go
@@ -9,11 +9,12 @@ import (
_ "net/http/pprof"
"os"
"os/signal"
+ "sync"
"syscall"
"time"
"github.com/mimecast/dtail/internal/config"
- "github.com/mimecast/dtail/internal/io/logger"
+ "github.com/mimecast/dtail/internal/io/dlog"
"github.com/mimecast/dtail/internal/server"
"github.com/mimecast/dtail/internal/user"
"github.com/mimecast/dtail/internal/version"
@@ -21,31 +22,31 @@ import (
// The evil begins here.
func main() {
- var cfgFile string
+ var args config.Args
var color bool
- var debugEnable bool
var displayVersion bool
var logDir string
var pprof int
var shutdownAfter int
- var sshPort int
user.NoRootCheck()
flag.BoolVar(&color, "color", false, "Enable ANSII terminal colors")
flag.BoolVar(&config.ServerRelaxedAuthEnable, "relaxedAuth", false, "Enable relaxced SSH auth mode (don't use in production!)")
- flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages")
flag.BoolVar(&displayVersion, "version", false, "Display version")
+ flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port")
flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port")
- flag.IntVar(&shutdownAfter, "shutdownAfter", 0, "Automatically shutdown after so many seconds")
- flag.IntVar(&sshPort, "port", 2222, "SSH server port")
- flag.StringVar(&cfgFile, "cfg", "", "Config file path")
+ flag.IntVar(&shutdownAfter, "shutdownAfter", 0, "Shutdown after so many seconds")
+ flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path")
+ flag.StringVar(&args.LogLevel, "logLevel", "", "Log level")
flag.StringVar(&logDir, "logDir", "", "Log dir path")
flag.Parse()
- config.Read(cfgFile, sshPort, !color)
+ args.NoColor = !color
+ config.Setup(&args, flag.Args())
if logDir != "" {
+ // TODO: Re-Implement log strategy support.
config.Common.LogDir = logDir
if config.Common.LogStrategy == "" {
config.Common.LogStrategy = "daily"
@@ -73,25 +74,25 @@ func main() {
}
}()
- if debugEnable {
- config.Common.DebugEnable = true
- }
-
- logger.Start(ctx, logger.Modes{Server: true, Debug: debugEnable || config.Common.DebugEnable})
+ var wg sync.WaitGroup
+ wg.Add(1)
+ dlog.Start(ctx, &wg, dlog.SERVER, config.Common.LogLevel)
if config.ServerRelaxedAuthEnable {
- logger.Fatal("SSH relaxed-auth mode enabled")
+ dlog.Server.Fatal("SSH relaxed-auth mode enabled")
}
if pprof > -1 {
- // For debugging purposes only
+ // Start of pprof server for development purposes only.
pprofArgs := fmt.Sprintf("0.0.0.0:%d", pprof)
- logger.Info("Starting PProf", pprofArgs)
+ dlog.Server.Info("Starting PProf", pprofArgs)
go http.ListenAndServe(pprofArgs, nil)
}
serv := server.New()
status := serv.Start(ctx)
- logger.Flush()
+ cancel()
+
+ wg.Wait()
os.Exit(status)
}