From f46abf36e80a67d13d12dbe4ba8c899026e53961 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 31 Jul 2021 18:20:03 +0300 Subject: more on configurable colors --- cmd/dserver/main.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 07f5270..5993481 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -12,7 +12,6 @@ import ( "syscall" "time" - "github.com/mimecast/dtail/internal/color" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/server" @@ -25,7 +24,7 @@ func main() { var cfgFile string var debugEnable bool var displayVersion bool - var noColor bool + var color bool var pprof int var shutdownAfter int var sshPort int @@ -35,16 +34,15 @@ func main() { flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") flag.BoolVar(&displayVersion, "version", false, "Display version") flag.BoolVar(&config.ServerRelaxedAuthEnable, "relaxedAuth", false, "Enable relaxced SSH auth mode (don't use in production!)") - flag.BoolVar(&noColor, "noColor", false, "Disable ANSII terminal colors") + flag.BoolVar(&color, "color", false, "Enable ANSII terminal colors") 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.Parse() - config.Read(cfgFile, sshPort) - color.Colored = !noColor + config.Client.TermColorsEnabled = color if displayVersion { version.PrintAndExit() -- cgit v1.2.3 From 3cc8887885f24a3f0d607af24197bc364ab16b8d Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 12 Aug 2021 10:56:36 +0300 Subject: add missing brush and also add color client configs plus jsonschema --- cmd/dserver/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 5993481..5f72cb8 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -42,11 +42,12 @@ func main() { flag.Parse() config.Read(cfgFile, sshPort) - config.Client.TermColorsEnabled = color + config.Client.TermColorsEnable = color if displayVersion { version.PrintAndExit() } + version.Print() ctx, cancel := context.WithCancel(context.Background()) if shutdownAfter > 0 { -- cgit v1.2.3 From a92857684b3b7843dc99ea71c49ee4af8b298392 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 21 Aug 2021 09:10:31 +0300 Subject: can specify logDir of dserver via command line --- cmd/dserver/main.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 5f72cb8..f5f0536 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -22,27 +22,32 @@ import ( // The evil begins here. func main() { var cfgFile string + var color bool var debugEnable bool var displayVersion bool - var color 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.BoolVar(&config.ServerRelaxedAuthEnable, "relaxedAuth", false, "Enable relaxced SSH auth mode (don't use in production!)") - flag.BoolVar(&color, "color", false, "Enable ANSII terminal colors") 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.StringVar(&logDir, "logDir", "", "Log dir path") flag.Parse() config.Read(cfgFile, sshPort) config.Client.TermColorsEnable = color + if logDir != "" { + config.Common.LogDir = logDir + } if displayVersion { version.PrintAndExit() -- cgit v1.2.3 From 70cc67e78278fcf103acc57dfe513bd6f5f258c9 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 21 Aug 2021 09:15:13 +0300 Subject: assume daily log strategy when logDir specified via command line arg --- cmd/dserver/main.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index f5f0536..89f9dca 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -47,6 +47,9 @@ func main() { config.Client.TermColorsEnable = color if logDir != "" { config.Common.LogDir = logDir + if config.Common.LogStrategy == "" { + config.Common.LogStrategy = "daily" + } } if displayVersion { -- cgit v1.2.3 From 9883a190109623b64e6d311dc2b462a6eae68003 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 22 Aug 2021 10:07:00 +0300 Subject: introduces the protocol package --- cmd/dserver/main.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 89f9dca..1fe77a7 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -73,6 +73,10 @@ func main() { } }() + if debugEnable { + config.Common.DebugEnable = true + } + logger.Start(ctx, logger.Modes{Server: true, Debug: debugEnable || config.Common.DebugEnable}) if config.ServerRelaxedAuthEnable { -- cgit v1.2.3 From 6506e20f6c80f4acb7434eb9dd14f784a67189cd Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 18 Sep 2021 14:41:25 +0300 Subject: add spartan mode --- cmd/dserver/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 1fe77a7..bc3cb91 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -43,8 +43,8 @@ func main() { flag.StringVar(&logDir, "logDir", "", "Log dir path") flag.Parse() - config.Read(cfgFile, sshPort) - config.Client.TermColorsEnable = color + config.Read(cfgFile, sshPort, !color) + if logDir != "" { config.Common.LogDir = logDir if config.Common.LogStrategy == "" { -- cgit v1.2.3 From fe3e68afd99d8ea246be52893730f987e138ec24 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 19 Sep 2021 13:22:59 +0300 Subject: move args to config package logger package rewrite as dlog --- cmd/dserver/main.go | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'cmd/dserver') 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) } -- cgit v1.2.3 From fcaa94c7453efa0d74e330128c0f5c2cde8f11b3 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 26 Sep 2021 16:42:47 +0300 Subject: refactor config reader - also looks in additional search paths for config file unless NONE is specified --- cmd/dserver/main.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 5788a87..a3add5b 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -25,7 +25,6 @@ func main() { var args config.Args var color bool var displayVersion bool - var logDir string var pprof int var shutdownAfter int @@ -34,25 +33,18 @@ func main() { 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(&displayVersion, "version", false, "Display version") - flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") flag.IntVar(&shutdownAfter, "shutdownAfter", 0, "Shutdown after so many seconds") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") + flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") - flag.StringVar(&logDir, "logDir", "", "Log dir path") + flag.StringVar(&args.LogDir, "logDir", "", "Log dir path") flag.Parse() 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" - } - } - if displayVersion { version.PrintAndExit() } -- cgit v1.2.3 From 609921f9c783941eaa9019a92b78ec45b49d681c Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 28 Sep 2021 21:11:50 +0300 Subject: can have daily and normal file log rotation --- cmd/dserver/main.go | 1 - 1 file changed, 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index a3add5b..e77bc21 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -39,7 +39,6 @@ func main() { flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") - flag.StringVar(&args.LogDir, "logDir", "", "Log dir path") flag.Parse() args.NoColor = !color -- cgit v1.2.3 From 6e1af993924bc7bebe898b403962db5a6b3505d1 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 2 Oct 2021 11:23:08 +0300 Subject: Client default log dir is ~/log --- cmd/dserver/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index e77bc21..a44d577 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -16,6 +16,7 @@ import ( "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/dlog" "github.com/mimecast/dtail/internal/server" + "github.com/mimecast/dtail/internal/source" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" ) @@ -67,7 +68,7 @@ func main() { var wg sync.WaitGroup wg.Add(1) - dlog.Start(ctx, &wg, dlog.SERVER, config.Common.LogLevel) + dlog.Start(ctx, &wg, source.Server, config.Common.LogLevel) if config.ServerRelaxedAuthEnable { dlog.Server.Fatal("SSH relaxed-auth mode enabled") -- cgit v1.2.3 From 07e1470892beacf0722276f94bacbd822b002540 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 3 Oct 2021 13:09:32 +0300 Subject: add dmap tests --- cmd/dserver/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index a44d577..c1db2f2 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -43,7 +43,7 @@ func main() { flag.Parse() args.NoColor = !color - config.Setup(&args, flag.Args()) + config.Setup(source.Server, &args, flag.Args()) if displayVersion { version.PrintAndExit() -- cgit v1.2.3 From 2d7ddbeae8286373ac19787dc7dde598a7cb0598 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 8 Oct 2021 11:43:43 +0300 Subject: refactor --- cmd/dserver/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index c1db2f2..780c6d5 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -39,6 +39,7 @@ func main() { flag.IntVar(&shutdownAfter, "shutdownAfter", 0, "Shutdown after so many seconds") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.LogDir, "logDir", "", "Log dir") + flag.StringVar(&args.Logger, "logger", config.DefaultServerLogger, "Logger name") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.Parse() @@ -68,7 +69,7 @@ func main() { var wg sync.WaitGroup wg.Add(1) - dlog.Start(ctx, &wg, source.Server, config.Common.LogLevel) + dlog.Start(ctx, &wg, source.Server) if config.ServerRelaxedAuthEnable { dlog.Server.Fatal("SSH relaxed-auth mode enabled") -- cgit v1.2.3 From 7a7169791a64190e1002e38bc9c04ad0d5c1ce1f Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 9 Oct 2021 16:44:28 +0300 Subject: add dtail health check unit test. --- cmd/dserver/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 780c6d5..b4fc873 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -40,7 +40,7 @@ func main() { flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.Logger, "logger", config.DefaultServerLogger, "Logger name") - flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") + flag.StringVar(&args.LogLevel, "logLevel", config.DefaultLogLevel, "Log level") flag.Parse() args.NoColor = !color -- cgit v1.2.3 From 97747ea0f3178f7f5890512d483fdccaa82846b0 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 9 Oct 2021 21:10:29 +0300 Subject: vetting and linting and some code restyling --- cmd/dserver/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index b4fc873..cf726cf 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -32,7 +32,8 @@ func main() { 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(&config.ServerRelaxedAuthEnable, "relaxedAuth", false, + "Enable relaxced SSH auth mode (don't use in production!)") flag.BoolVar(&displayVersion, "version", false, "Display version") flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") -- cgit v1.2.3 From b27fc108ecd6eead5c97cf6e894bf8d639fff75c Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 15 Oct 2021 13:06:18 +0300 Subject: Execute test directories individually --- cmd/dserver/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index cf726cf..81e04e9 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -40,8 +40,9 @@ func main() { flag.IntVar(&shutdownAfter, "shutdownAfter", 0, "Shutdown after so many seconds") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.LogDir, "logDir", "", "Log dir") - flag.StringVar(&args.Logger, "logger", config.DefaultServerLogger, "Logger name") flag.StringVar(&args.LogLevel, "logLevel", config.DefaultLogLevel, "Log level") + flag.StringVar(&args.Logger, "logger", config.DefaultServerLogger, "Logger name") + flag.StringVar(&args.SSHBindAddress, "bindAddress", "", "The SSH bind address") flag.Parse() args.NoColor = !color -- cgit v1.2.3 From b679462fa687b375ccefd3c11fec3fd96b9b4d60 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 20 Oct 2021 06:41:08 +0300 Subject: make pprof bind address configurable --- cmd/dserver/main.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'cmd/dserver') diff --git a/cmd/dserver/main.go b/cmd/dserver/main.go index 81e04e9..24143eb 100644 --- a/cmd/dserver/main.go +++ b/cmd/dserver/main.go @@ -3,7 +3,6 @@ package main import ( "context" "flag" - "fmt" "net/http" _ "net/http" _ "net/http/pprof" @@ -26,7 +25,7 @@ func main() { var args config.Args var color bool var displayVersion bool - var pprof int + var pprof string var shutdownAfter int user.NoRootCheck() @@ -36,13 +35,13 @@ func main() { "Enable relaxced SSH auth mode (don't use in production!)") flag.BoolVar(&displayVersion, "version", false, "Display version") flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") - flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") flag.IntVar(&shutdownAfter, "shutdownAfter", 0, "Shutdown after so many seconds") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", config.DefaultLogLevel, "Log level") flag.StringVar(&args.Logger, "logger", config.DefaultServerLogger, "Logger name") flag.StringVar(&args.SSHBindAddress, "bindAddress", "", "The SSH bind address") + flag.StringVar(&pprof, "pprof", "", "Start PProf server this address") flag.Parse() args.NoColor = !color @@ -77,11 +76,9 @@ func main() { dlog.Server.Fatal("SSH relaxed-auth mode enabled") } - if pprof > -1 { - // Start of pprof server for development purposes only. - pprofArgs := fmt.Sprintf("0.0.0.0:%d", pprof) - dlog.Server.Info("Starting PProf", pprofArgs) - go http.ListenAndServe(pprofArgs, nil) + if pprof != "" { + dlog.Server.Info("Starting PProf", pprof) + go http.ListenAndServe(pprof, nil) } serv := server.New() -- cgit v1.2.3