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/dcat/main.go | 5 +++-- cmd/dgrep/main.go | 5 +++-- cmd/dmap/main.go | 5 +++-- cmd/dserver/main.go | 8 +++----- cmd/dtail/main.go | 5 +++-- 5 files changed, 15 insertions(+), 13 deletions(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index 238f97a..1aa7798 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -6,7 +6,6 @@ import ( "os" "github.com/mimecast/dtail/internal/clients" - "github.com/mimecast/dtail/internal/color" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/io/signal" @@ -42,7 +41,9 @@ func main() { flag.Parse() config.Read(cfgFile, sshPort) - color.Colored = !noColor + if noColor { + config.Client.TermColorsEnabled = false + } if displayVersion { version.PrintAndExit() diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index 4da1bb3..422bdd4 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -6,7 +6,6 @@ import ( "os" "github.com/mimecast/dtail/internal/clients" - "github.com/mimecast/dtail/internal/color" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/io/signal" @@ -46,7 +45,9 @@ func main() { flag.Parse() config.Read(cfgFile, sshPort) - color.Colored = !noColor + if noColor { + config.Client.TermColorsEnabled = false + } if displayVersion { version.PrintAndExit() diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index 1a05549..8a38069 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -6,7 +6,6 @@ import ( "os" "github.com/mimecast/dtail/internal/clients" - "github.com/mimecast/dtail/internal/color" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/io/signal" @@ -49,7 +48,9 @@ func main() { flag.Parse() config.Read(cfgFile, sshPort) - color.Colored = !noColor + if noColor { + config.Client.TermColorsEnabled = false + } if displayVersion { version.PrintAndExit() 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() diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index f2a039f..178ea52 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -11,7 +11,6 @@ import ( "time" "github.com/mimecast/dtail/internal/clients" - "github.com/mimecast/dtail/internal/color" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/io/signal" @@ -65,7 +64,9 @@ func main() { } config.Read(cfgFile, sshPort) - color.Colored = !noColor + if noColor { + config.Client.TermColorsEnabled = false + } if displayVersion { version.PrintAndExit() -- cgit v1.2.3 From 9bb96433be61d89f8e86f6f9ded8e35f74156a63 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 11 Aug 2021 09:32:13 +0300 Subject: add colorTable option --- cmd/dtail/main.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index 178ea52..869a536 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -11,6 +11,7 @@ import ( "time" "github.com/mimecast/dtail/internal/clients" + "github.com/mimecast/dtail/internal/color" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" "github.com/mimecast/dtail/internal/io/signal" @@ -25,6 +26,7 @@ func main() { var cfgFile string var checkHealth bool var debugEnable bool + var displayColorTable bool var displayVersion bool var grep string var noColor bool @@ -35,13 +37,14 @@ func main() { userName := user.Name() + flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.RegexInvert, "invert", false, "Invert regex") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") flag.BoolVar(&checkHealth, "checkHealth", false, "Only check for server health") flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") + flag.BoolVar(&displayColorTable, "colorTable", false, "Show color table") flag.BoolVar(&displayVersion, "version", false, "Display version") flag.BoolVar(&noColor, "noColor", false, "Disable ANSII terminal colors") - flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") @@ -71,6 +74,9 @@ func main() { if displayVersion { version.PrintAndExit() } + if displayColorTable { + color.TablePrintAndExit() + } ctx, cancel := context.WithCancel(context.Background()) defer cancel() -- 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/dcat/main.go | 3 ++- cmd/dgrep/main.go | 3 ++- cmd/dmap/main.go | 3 ++- cmd/dserver/main.go | 3 ++- cmd/dtail/main.go | 4 +++- 5 files changed, 11 insertions(+), 5 deletions(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index 1aa7798..1732c26 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -42,12 +42,13 @@ func main() { config.Read(cfgFile, sshPort) if noColor { - config.Client.TermColorsEnabled = false + config.Client.TermColorsEnable = false } if displayVersion { version.PrintAndExit() } + version.Print() ctx := context.TODO() logger.Start(ctx, logger.Modes{ diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index 422bdd4..f32be34 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -46,12 +46,13 @@ func main() { config.Read(cfgFile, sshPort) if noColor { - config.Client.TermColorsEnabled = false + config.Client.TermColorsEnable = false } if displayVersion { version.PrintAndExit() } + version.Print() ctx := context.TODO() logger.Start(ctx, logger.Modes{ diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index 8a38069..f99be52 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -49,12 +49,13 @@ func main() { config.Read(cfgFile, sshPort) if noColor { - config.Client.TermColorsEnabled = false + config.Client.TermColorsEnable = false } if displayVersion { version.PrintAndExit() } + version.Print() ctx := context.TODO() logger.Start(ctx, logger.Modes{ 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 { diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index 869a536..c78e11a 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -68,12 +68,14 @@ func main() { config.Read(cfgFile, sshPort) if noColor { - config.Client.TermColorsEnabled = false + config.Client.TermColorsEnable = false } if displayVersion { version.PrintAndExit() } + version.Print() + if displayColorTable { color.TablePrintAndExit() } -- 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') 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') 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 ++++ cmd/dtail/main.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'cmd') 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 { diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index c78e11a..6687538 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -101,8 +101,8 @@ func main() { if pprof > -1 { // For debugging purposes only pprofArgs := fmt.Sprintf("0.0.0.0:%d", pprof) - logger.Info("Starting PProf", pprofArgs) go http.ListenAndServe(pprofArgs, nil) + logger.Info("Started PProf", pprofArgs) } var client clients.Client -- cgit v1.2.3 From c895b3c8293ddbf46d66278061d7e0127adc57f7 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 5 Sep 2021 16:04:45 +0300 Subject: -colorTable in combination with -debug prints whole sample paragraphs in all color combinations. --- cmd/dtail/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index 6687538..b41e9bb 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -77,7 +77,7 @@ func main() { version.Print() if displayColorTable { - color.TablePrintAndExit() + color.TablePrintAndExit(debugEnable) } ctx, cancel := context.WithCancel(context.Background()) -- cgit v1.2.3 From 7fbea88cf55af9b3354b4a1334e49c38d0d920fc Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 18 Sep 2021 13:16:36 +0300 Subject: additional flags can be interpreted as file list --- cmd/dcat/main.go | 10 ++++++++++ cmd/dgrep/main.go | 10 ++++++++++ cmd/dmap/main.go | 12 +++++++++++- cmd/dtail/main.go | 10 ++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index 1732c26..2ac773a 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -4,6 +4,7 @@ import ( "context" "flag" "os" + "strings" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/config" @@ -40,6 +41,15 @@ func main() { flag.Parse() + if args.What == "" { + // Interpret additional args as file list. + var files []string + for _, file := range flag.Args() { + files = append(files, file) + } + args.What = strings.Join(files, ",") + } + config.Read(cfgFile, sshPort) if noColor { config.Client.TermColorsEnable = false diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index f32be34..35b2236 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -4,6 +4,7 @@ import ( "context" "flag" "os" + "strings" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/config" @@ -44,6 +45,15 @@ func main() { flag.Parse() + if args.What == "" { + // Interpret additional args as file list. + var files []string + for _, file := range flag.Args() { + files = append(files, file) + } + args.What = strings.Join(files, ",") + } + config.Read(cfgFile, sshPort) if noColor { config.Client.TermColorsEnable = false diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index f99be52..ab710ac 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -4,6 +4,7 @@ import ( "context" "flag" "os" + "strings" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/config" @@ -47,6 +48,15 @@ func main() { flag.Parse() + if args.What == "" { + // Interpret additional args as file list. + var files []string + for _, file := range flag.Args() { + files = append(files, file) + } + args.What = strings.Join(files, ",") + } + config.Read(cfgFile, sshPort) if noColor { config.Client.TermColorsEnable = false @@ -65,7 +75,7 @@ func main() { client, err := clients.NewMaprClient(args, queryStr, clients.DefaultMode) if err != nil { - panic(err) + logger.FatalExit(err) } status := client.Start(ctx, signal.InterruptCh(ctx)) diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index b41e9bb..3c3443f 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -8,6 +8,7 @@ import ( _ "net/http" _ "net/http/pprof" "os" + "strings" "time" "github.com/mimecast/dtail/internal/clients" @@ -62,6 +63,15 @@ func main() { flag.Parse() + if args.What == "" { + // Interpret additional args as file list. + var files []string + for _, file := range flag.Args() { + files = append(files, file) + } + args.What = strings.Join(files, ",") + } + if grep != "" { args.RegexStr = grep } -- 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/dcat/main.go | 28 +++++++++------------------- cmd/dgrep/main.go | 28 +++++++++------------------- cmd/dmap/main.go | 28 +++++++++------------------- cmd/dserver/main.go | 4 ++-- cmd/dtail/main.go | 32 ++++++++++---------------------- 5 files changed, 39 insertions(+), 81 deletions(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index 2ac773a..63b4b61 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -4,7 +4,6 @@ import ( "context" "flag" "os" - "strings" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/config" @@ -20,16 +19,16 @@ func main() { var cfgFile string var debugEnable bool var displayVersion bool - var noColor bool var sshPort int userName := user.Name() + flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") + flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&noColor, "noColor", false, "Disable ANSII terminal colors") - flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") flag.IntVar(&sshPort, "port", 2222, "SSH server port") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") @@ -40,25 +39,16 @@ func main() { flag.StringVar(&cfgFile, "cfg", "", "Config file path") flag.Parse() - - if args.What == "" { - // Interpret additional args as file list. - var files []string - for _, file := range flag.Args() { - files = append(files, file) - } - args.What = strings.Join(files, ",") - } - - config.Read(cfgFile, sshPort) - if noColor { - config.Client.TermColorsEnable = false - } + args.Transform(flag.Args()) + config.Read(cfgFile, sshPort, args.NoColor) + args.TransformAfterConfigFile() if displayVersion { version.PrintAndExit() } - version.Print() + if !args.Spartan { + version.Print() + } ctx := context.TODO() logger.Start(ctx, logger.Modes{ diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index 35b2236..7b96472 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -4,7 +4,6 @@ import ( "context" "flag" "os" - "strings" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/config" @@ -21,17 +20,17 @@ func main() { var debugEnable bool var displayVersion bool var grep string - var noColor bool var sshPort int userName := user.Name() + flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.RegexInvert, "invert", false, "Invert regex") + flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&noColor, "noColor", false, "Disable ANSII terminal colors") - flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") flag.IntVar(&sshPort, "port", 2222, "SSH server port") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") @@ -44,25 +43,16 @@ func main() { flag.StringVar(&grep, "grep", "", "Alias for -regex") flag.Parse() - - if args.What == "" { - // Interpret additional args as file list. - var files []string - for _, file := range flag.Args() { - files = append(files, file) - } - args.What = strings.Join(files, ",") - } - - config.Read(cfgFile, sshPort) - if noColor { - config.Client.TermColorsEnable = false - } + args.Transform(flag.Args()) + config.Read(cfgFile, sshPort, args.NoColor) + args.TransformAfterConfigFile() if displayVersion { version.PrintAndExit() } - version.Print() + if !args.Spartan { + version.Print() + } ctx := context.TODO() logger.Start(ctx, logger.Modes{ diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index ab710ac..4525503 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -4,7 +4,6 @@ import ( "context" "flag" "os" - "strings" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/config" @@ -20,7 +19,6 @@ func main() { var cfgFile string var debugEnable bool var displayVersion bool - var noColor bool var queryStr string var sshPort int @@ -30,11 +28,12 @@ func main() { userName := user.Name() + flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") + flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&noColor, "noColor", false, "Disable ANSII terminal colors") - flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.IntVar(&sshPort, "port", 2222, "SSH server port") @@ -47,25 +46,16 @@ func main() { flag.StringVar(&queryStr, "query", "", "Map reduce query") flag.Parse() - - if args.What == "" { - // Interpret additional args as file list. - var files []string - for _, file := range flag.Args() { - files = append(files, file) - } - args.What = strings.Join(files, ",") - } - - config.Read(cfgFile, sshPort) - if noColor { - config.Client.TermColorsEnable = false - } + args.Transform(flag.Args()) + config.Read(cfgFile, sshPort, args.NoColor) + args.TransformAfterConfigFile() if displayVersion { version.PrintAndExit() } - version.Print() + if !args.Spartan { + version.Print() + } ctx := context.TODO() logger.Start(ctx, logger.Modes{ 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 == "" { diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index 3c3443f..5c2d393 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -8,7 +8,6 @@ import ( _ "net/http" _ "net/http/pprof" "os" - "strings" "time" "github.com/mimecast/dtail/internal/clients" @@ -30,7 +29,6 @@ func main() { var displayColorTable bool var displayVersion bool var grep string - var noColor bool var pprof int var queryStr string var shutdownAfter int @@ -40,12 +38,13 @@ func main() { flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.RegexInvert, "invert", false, "Invert regex") + flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") flag.BoolVar(&checkHealth, "checkHealth", false, "Only check for server health") flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") flag.BoolVar(&displayColorTable, "colorTable", false, "Show color table") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&noColor, "noColor", false, "Disable ANSII terminal colors") + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") @@ -62,32 +61,21 @@ func main() { flag.StringVar(&queryStr, "query", "", "Map reduce query") flag.Parse() - - if args.What == "" { - // Interpret additional args as file list. - var files []string - for _, file := range flag.Args() { - files = append(files, file) - } - args.What = strings.Join(files, ",") - } - if grep != "" { args.RegexStr = grep } - - config.Read(cfgFile, sshPort) - if noColor { - config.Client.TermColorsEnable = false - } + args.Transform(flag.Args()) + config.Read(cfgFile, sshPort, args.NoColor) + args.TransformAfterConfigFile() if displayVersion { version.PrintAndExit() } - version.Print() - - if displayColorTable { - color.TablePrintAndExit(debugEnable) + if !args.Spartan { + version.Print() + if displayColorTable { + color.TablePrintAndExit(debugEnable) + } } ctx, cancel := context.WithCancel(context.Background()) -- 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/dcat/main.go | 35 ++++++++++++++++------------------- cmd/dgrep/main.go | 35 ++++++++++++++++------------------- cmd/dmap/main.go | 39 +++++++++++++++++++-------------------- cmd/dserver/main.go | 37 +++++++++++++++++++------------------ cmd/dtail/main.go | 47 +++++++++++++++++++++++++---------------------- 5 files changed, 95 insertions(+), 98 deletions(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index 63b4b61..d5dfba4 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -4,10 +4,11 @@ import ( "context" "flag" "os" + "sync" "github.com/mimecast/dtail/internal/clients" "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/io/signal" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" @@ -15,33 +16,28 @@ import ( // The evil begins here. func main() { - var args clients.Args - var cfgFile string - var debugEnable bool + var args config.Args var displayVersion bool - var sshPort int userName := user.Name() + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") - flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") - flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") + flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") - flag.IntVar(&sshPort, "port", 2222, "SSH server port") + flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") flag.StringVar(&args.UserName, "user", userName, "Your system user name") flag.StringVar(&args.What, "files", "", "File(s) to read") - flag.StringVar(&cfgFile, "cfg", "", "Config file path") flag.Parse() - args.Transform(flag.Args()) - config.Read(cfgFile, sshPort, args.NoColor) - args.TransformAfterConfigFile() + config.Setup(&args, flag.Args()) if displayVersion { version.PrintAndExit() @@ -50,11 +46,10 @@ func main() { version.Print() } - ctx := context.TODO() - logger.Start(ctx, logger.Modes{ - Debug: debugEnable || config.Common.DebugEnable, - Quiet: args.Quiet, - }) + ctx, cancel := context.WithCancel(context.Background()) + var wg sync.WaitGroup + wg.Add(1) + dlog.Start(ctx, &wg, dlog.CLIENT, config.Common.LogLevel) client, err := clients.NewCatClient(args) if err != nil { @@ -62,6 +57,8 @@ func main() { } status := client.Start(ctx, signal.InterruptCh(ctx)) - logger.Flush() + cancel() + + wg.Wait() os.Exit(status) } diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index 7b96472..c6bece0 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -4,10 +4,11 @@ import ( "context" "flag" "os" + "sync" "github.com/mimecast/dtail/internal/clients" "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/io/signal" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" @@ -15,37 +16,32 @@ import ( // The evil begins here. func main() { - var args clients.Args - var cfgFile string - var debugEnable bool + var args config.Args var displayVersion bool var grep string - var sshPort int userName := user.Name() + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.RegexInvert, "invert", false, "Invert regex") flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") - flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") - flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") + flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") - flag.IntVar(&sshPort, "port", 2222, "SSH server port") + flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.RegexStr, "regex", ".", "Regular expression") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") flag.StringVar(&args.UserName, "user", userName, "Your system user name") flag.StringVar(&args.What, "files", "", "File(s) to read") - flag.StringVar(&cfgFile, "cfg", "", "Config file path") flag.StringVar(&grep, "grep", "", "Alias for -regex") flag.Parse() - args.Transform(flag.Args()) - config.Read(cfgFile, sshPort, args.NoColor) - args.TransformAfterConfigFile() + config.Setup(&args, flag.Args()) if displayVersion { version.PrintAndExit() @@ -54,11 +50,10 @@ func main() { version.Print() } - ctx := context.TODO() - logger.Start(ctx, logger.Modes{ - Debug: debugEnable || config.Common.DebugEnable, - Quiet: args.Quiet, - }) + ctx, cancel := context.WithCancel(context.Background()) + var wg sync.WaitGroup + wg.Add(1) + dlog.Start(ctx, &wg, dlog.CLIENT, args.LogLevel) if grep != "" { args.RegexStr = grep @@ -70,6 +65,8 @@ func main() { } status := client.Start(ctx, signal.InterruptCh(ctx)) - logger.Flush() + cancel() + + wg.Wait() os.Exit(status) } diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index 4525503..061d859 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -4,10 +4,11 @@ import ( "context" "flag" "os" + "sync" "github.com/mimecast/dtail/internal/clients" "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/io/signal" "github.com/mimecast/dtail/internal/omode" "github.com/mimecast/dtail/internal/user" @@ -16,39 +17,36 @@ import ( // The evil begins here. func main() { - var cfgFile string - var debugEnable bool var displayVersion bool var queryStr string - var sshPort int - args := clients.Args{ + args := config.Args{ Mode: omode.MapClient, } userName := user.Name() + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") - flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") - flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") + flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") + // TODO: Make ConnectionsPerCPU default value as a constant in config package. flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") + // TODO: make default ssh port a constant in the config package. + flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") - flag.IntVar(&sshPort, "port", 2222, "SSH server port") + flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") flag.StringVar(&args.UserName, "user", userName, "Your system user name") flag.StringVar(&args.What, "files", "", "File(s) to read") - flag.StringVar(&cfgFile, "cfg", "", "Config file path") flag.StringVar(&queryStr, "query", "", "Map reduce query") flag.Parse() - args.Transform(flag.Args()) - config.Read(cfgFile, sshPort, args.NoColor) - args.TransformAfterConfigFile() + config.Setup(&args, flag.Args()) if displayVersion { version.PrintAndExit() @@ -57,18 +55,19 @@ func main() { version.Print() } - ctx := context.TODO() - logger.Start(ctx, logger.Modes{ - Debug: debugEnable || config.Common.DebugEnable, - Quiet: args.Quiet, - }) + ctx, cancel := context.WithCancel(context.Background()) + var wg sync.WaitGroup + wg.Add(1) + dlog.Start(ctx, &wg, dlog.CLIENT, config.Common.LogLevel) client, err := clients.NewMaprClient(args, queryStr, clients.DefaultMode) if err != nil { - logger.FatalExit(err) + dlog.Client.FatalPanic(err) } status := client.Start(ctx, signal.InterruptCh(ctx)) - logger.Flush() + cancel() + + wg.Wait() os.Exit(status) } 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) } diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index 5c2d393..dcf1fab 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -8,12 +8,13 @@ import ( _ "net/http" _ "net/http/pprof" "os" + "sync" "time" "github.com/mimecast/dtail/internal/clients" "github.com/mimecast/dtail/internal/color" "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/io/signal" "github.com/mimecast/dtail/internal/omode" "github.com/mimecast/dtail/internal/user" @@ -22,41 +23,41 @@ import ( // The evil begins here. func main() { - var args clients.Args - var cfgFile string + var args config.Args var checkHealth bool - var debugEnable bool var displayColorTable bool + var displayWideColorTable bool var displayVersion bool var grep string var pprof int var queryStr string var shutdownAfter int - var sshPort int userName := user.Name() + flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.BoolVar(&args.Quiet, "quiet", false, "Quiet output mode") flag.BoolVar(&args.RegexInvert, "invert", false, "Invert regex") flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") - flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Auto trust all unknown host keys") + flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") + // TODO: Check whether the health check still works. flag.BoolVar(&checkHealth, "checkHealth", false, "Only check for server health") - flag.BoolVar(&debugEnable, "debug", false, "Activate debug messages") flag.BoolVar(&displayColorTable, "colorTable", false, "Show color table") + flag.BoolVar(&displayWideColorTable, "wideColorTable", false, "Show a large color table") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.BoolVar(&args.NoColor, "noColor", false, "Disable ANSII terminal colors") flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") + flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") - flag.IntVar(&shutdownAfter, "shutdownAfter", 3600*24, "Automatically shutdown after so many seconds") - flag.IntVar(&sshPort, "port", 2222, "SSH server port") + flag.IntVar(&shutdownAfter, "shutdownAfter", 3600*24, "Shutdown after so many seconds") + flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.RegexStr, "regex", ".", "Regular expression") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") flag.StringVar(&args.UserName, "user", userName, "Your system user name") flag.StringVar(&args.What, "files", "", "File(s) to read") - flag.StringVar(&cfgFile, "cfg", "", "Config file path") flag.StringVar(&grep, "grep", "", "Alias for -regex") flag.StringVar(&queryStr, "query", "", "Map reduce query") @@ -64,22 +65,22 @@ func main() { if grep != "" { args.RegexStr = grep } - args.Transform(flag.Args()) - config.Read(cfgFile, sshPort, args.NoColor) - args.TransformAfterConfigFile() + config.Setup(&args, flag.Args()) if displayVersion { version.PrintAndExit() } if !args.Spartan { version.Print() + if displayWideColorTable { + color.TablePrintAndExit(true) + } if displayColorTable { - color.TablePrintAndExit(debugEnable) + color.TablePrintAndExit(false) } } ctx, cancel := context.WithCancel(context.Background()) - defer cancel() if shutdownAfter > 0 { ctx, cancel = context.WithTimeout(ctx, time.Duration(shutdownAfter)*time.Second) @@ -88,19 +89,19 @@ func main() { if checkHealth { healthClient, _ := clients.NewHealthClient(omode.HealthClient) + cancel() os.Exit(healthClient.Start(ctx)) } - logger.Start(ctx, logger.Modes{ - Debug: debugEnable || config.Common.DebugEnable, - Quiet: args.Quiet, - }) + var wg sync.WaitGroup + wg.Add(1) + dlog.Start(ctx, &wg, dlog.CLIENT, config.Common.LogLevel) if pprof > -1 { // For debugging purposes only pprofArgs := fmt.Sprintf("0.0.0.0:%d", pprof) go http.ListenAndServe(pprofArgs, nil) - logger.Info("Started PProf", pprofArgs) + dlog.Client.Info("Started PProf", pprofArgs) } var client clients.Client @@ -119,6 +120,8 @@ func main() { } status := client.Start(ctx, signal.InterruptCh(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/dcat/main.go | 5 +++-- cmd/dgrep/main.go | 5 +++-- cmd/dmap/main.go | 7 +++---- cmd/dserver/main.go | 14 +++----------- cmd/dtail/main.go | 6 +++--- 5 files changed, 15 insertions(+), 22 deletions(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index d5dfba4..43549b3 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -26,10 +26,11 @@ func main() { flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") - flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.IntVar(&args.ConnectionsPerCPU, "cpc", config.DefaultConnectionsPerCPU, "How many connections established per CPU core concurrently") + flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index c6bece0..36efe4e 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -28,10 +28,11 @@ func main() { flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") - flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.IntVar(&args.ConnectionsPerCPU, "cpc", config.DefaultConnectionsPerCPU, "How many connections established per CPU core concurrently") + flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.RegexStr, "regex", ".", "Regular expression") diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index 061d859..b895964 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -31,13 +31,12 @@ func main() { flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") flag.BoolVar(&displayVersion, "version", false, "Display version") - // TODO: Make ConnectionsPerCPU default value as a constant in config package. - flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") - // TODO: make default ssh port a constant in the config package. - flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.IntVar(&args.ConnectionsPerCPU, "cpc", config.DefaultConnectionsPerCPU, "How many connections established per CPU core concurrently") + flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") 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() } diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index dcf1fab..0794f96 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -40,18 +40,18 @@ func main() { flag.BoolVar(&args.RegexInvert, "invert", false, "Invert regex") flag.BoolVar(&args.Spartan, "spartan", false, "Spartan output mode") flag.BoolVar(&args.TrustAllHosts, "trustAllHosts", false, "Trust all unknown host keys") - // TODO: Check whether the health check still works. flag.BoolVar(&checkHealth, "checkHealth", false, "Only check for server health") flag.BoolVar(&displayColorTable, "colorTable", false, "Show color table") flag.BoolVar(&displayWideColorTable, "wideColorTable", false, "Show a large color table") flag.BoolVar(&displayVersion, "version", false, "Display version") - flag.IntVar(&args.ConnectionsPerCPU, "cpc", 10, "How many connections established per CPU core concurrently") - flag.IntVar(&args.SSHPort, "port", 2222, "SSH server port") + flag.IntVar(&args.ConnectionsPerCPU, "cpc", config.DefaultConnectionsPerCPU, "How many connections established per CPU core concurrently") + flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.IntVar(&pprof, "pprof", -1, "Start PProf server this port") flag.IntVar(&shutdownAfter, "shutdownAfter", 3600*24, "Shutdown after so many seconds") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") + flag.StringVar(&args.LogDir, "logDir", "", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.RegexStr, "regex", ".", "Regular expression") -- 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') 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/dcat/main.go | 5 +++-- cmd/dgrep/main.go | 5 +++-- cmd/dmap/main.go | 5 +++-- cmd/dserver/main.go | 3 ++- cmd/dtail/main.go | 5 +++-- 5 files changed, 14 insertions(+), 9 deletions(-) (limited to 'cmd') diff --git a/cmd/dcat/main.go b/cmd/dcat/main.go index 43549b3..21946f6 100644 --- a/cmd/dcat/main.go +++ b/cmd/dcat/main.go @@ -10,6 +10,7 @@ import ( "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/dlog" "github.com/mimecast/dtail/internal/io/signal" + "github.com/mimecast/dtail/internal/source" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" ) @@ -30,7 +31,7 @@ func main() { flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") - flag.StringVar(&args.LogDir, "logDir", "", "Log dir") + flag.StringVar(&args.LogDir, "logDir", "~/log", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") @@ -50,7 +51,7 @@ func main() { ctx, cancel := context.WithCancel(context.Background()) var wg sync.WaitGroup wg.Add(1) - dlog.Start(ctx, &wg, dlog.CLIENT, config.Common.LogLevel) + dlog.Start(ctx, &wg, source.Client, config.Common.LogLevel) client, err := clients.NewCatClient(args) if err != nil { diff --git a/cmd/dgrep/main.go b/cmd/dgrep/main.go index 36efe4e..4f21a9e 100644 --- a/cmd/dgrep/main.go +++ b/cmd/dgrep/main.go @@ -10,6 +10,7 @@ import ( "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/dlog" "github.com/mimecast/dtail/internal/io/signal" + "github.com/mimecast/dtail/internal/source" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" ) @@ -32,7 +33,7 @@ func main() { flag.IntVar(&args.SSHPort, "port", config.DefaultSSHPort, "SSH server port") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") - flag.StringVar(&args.LogDir, "logDir", "", "Log dir") + flag.StringVar(&args.LogDir, "logDir", "~/log", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.RegexStr, "regex", ".", "Regular expression") @@ -54,7 +55,7 @@ func main() { ctx, cancel := context.WithCancel(context.Background()) var wg sync.WaitGroup wg.Add(1) - dlog.Start(ctx, &wg, dlog.CLIENT, args.LogLevel) + dlog.Start(ctx, &wg, source.Client, args.LogLevel) if grep != "" { args.RegexStr = grep diff --git a/cmd/dmap/main.go b/cmd/dmap/main.go index b895964..cc8a158 100644 --- a/cmd/dmap/main.go +++ b/cmd/dmap/main.go @@ -11,6 +11,7 @@ import ( "github.com/mimecast/dtail/internal/io/dlog" "github.com/mimecast/dtail/internal/io/signal" "github.com/mimecast/dtail/internal/omode" + "github.com/mimecast/dtail/internal/source" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" ) @@ -36,7 +37,7 @@ func main() { flag.IntVar(&args.Timeout, "timeout", 0, "Max time dtail server will collect data until disconnection") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") - flag.StringVar(&args.LogDir, "logDir", "", "Log dir") + flag.StringVar(&args.LogDir, "logDir", "~/log", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.ServersStr, "servers", "", "Remote servers to connect") @@ -57,7 +58,7 @@ func main() { ctx, cancel := context.WithCancel(context.Background()) var wg sync.WaitGroup wg.Add(1) - dlog.Start(ctx, &wg, dlog.CLIENT, config.Common.LogLevel) + dlog.Start(ctx, &wg, source.Client, config.Common.LogLevel) client, err := clients.NewMaprClient(args, queryStr, clients.DefaultMode) if err != nil { 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") diff --git a/cmd/dtail/main.go b/cmd/dtail/main.go index 0794f96..95a0427 100644 --- a/cmd/dtail/main.go +++ b/cmd/dtail/main.go @@ -17,6 +17,7 @@ import ( "github.com/mimecast/dtail/internal/io/dlog" "github.com/mimecast/dtail/internal/io/signal" "github.com/mimecast/dtail/internal/omode" + "github.com/mimecast/dtail/internal/source" "github.com/mimecast/dtail/internal/user" "github.com/mimecast/dtail/internal/version" ) @@ -51,7 +52,7 @@ func main() { flag.IntVar(&shutdownAfter, "shutdownAfter", 3600*24, "Shutdown after so many seconds") flag.StringVar(&args.ConfigFile, "cfg", "", "Config file path") flag.StringVar(&args.Discovery, "discovery", "", "Server discovery method") - flag.StringVar(&args.LogDir, "logDir", "", "Log dir") + flag.StringVar(&args.LogDir, "logDir", "~/log", "Log dir") flag.StringVar(&args.LogLevel, "logLevel", "", "Log level") flag.StringVar(&args.PrivateKeyPathFile, "key", "", "Path to private key") flag.StringVar(&args.RegexStr, "regex", ".", "Regular expression") @@ -95,7 +96,7 @@ func main() { var wg sync.WaitGroup wg.Add(1) - dlog.Start(ctx, &wg, dlog.CLIENT, config.Common.LogLevel) + dlog.Start(ctx, &wg, source.Client, config.Common.LogLevel) if pprof > -1 { // For debugging purposes only -- cgit v1.2.3 From 86ec83754e0ee7153ad55091f7b6da448bc529c5 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 2 Oct 2021 13:44:27 +0300 Subject: add dcat test --- cmd/dcat/testdata.txt | 500 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 500 insertions(+) create mode 100644 cmd/dcat/testdata.txt (limited to 'cmd') diff --git a/cmd/dcat/testdata.txt b/cmd/dcat/testdata.txt new file mode 100644 index 0000000..9e80424 --- /dev/null +++ b/cmd/dcat/testdata.txt @@ -0,0 +1,500 @@ +1 Sat 2 Oct 13:46:45 EEST 2021 +2 Sat 2 Oct 13:46:45 EEST 2021 +3 Sat 2 Oct 13:46:45 EEST 2021 +4 Sat 2 Oct 13:46:45 EEST 2021 +5 Sat 2 Oct 13:46:45 EEST 2021 +6 Sat 2 Oct 13:46:45 EEST 2021 +7 Sat 2 Oct 13:46:45 EEST 2021 +8 Sat 2 Oct 13:46:45 EEST 2021 +9 Sat 2 Oct 13:46:45 EEST 2021 +10 Sat 2 Oct 13:46:45 EEST 2021 +11 Sat 2 Oct 13:46:45 EEST 2021 +12 Sat 2 Oct 13:46:45 EEST 2021 +13 Sat 2 Oct 13:46:45 EEST 2021 +14 Sat 2 Oct 13:46:45 EEST 2021 +15 Sat 2 Oct 13:46:45 EEST 2021 +16 Sat 2 Oct 13:46:45 EEST 2021 +17 Sat 2 Oct 13:46:45 EEST 2021 +18 Sat 2 Oct 13:46:45 EEST 2021 +19 Sat 2 Oct 13:46:45 EEST 2021 +20 Sat 2 Oct 13:46:45 EEST 2021 +21 Sat 2 Oct 13:46:45 EEST 2021 +22 Sat 2 Oct 13:46:45 EEST 2021 +23 Sat 2 Oct 13:46:45 EEST 2021 +24 Sat 2 Oct 13:46:45 EEST 2021 +25 Sat 2 Oct 13:46:45 EEST 2021 +26 Sat 2 Oct 13:46:45 EEST 2021 +27 Sat 2 Oct 13:46:45 EEST 2021 +28 Sat 2 Oct 13:46:45 EEST 2021 +29 Sat 2 Oct 13:46:45 EEST 2021 +30 Sat 2 Oct 13:46:45 EEST 2021 +31 Sat 2 Oct 13:46:45 EEST 2021 +32 Sat 2 Oct 13:46:45 EEST 2021 +33 Sat 2 Oct 13:46:45 EEST 2021 +34 Sat 2 Oct 13:46:45 EEST 2021 +35 Sat 2 Oct 13:46:45 EEST 2021 +36 Sat 2 Oct 13:46:45 EEST 2021 +37 Sat 2 Oct 13:46:45 EEST 2021 +38 Sat 2 Oct 13:46:45 EEST 2021 +39 Sat 2 Oct 13:46:45 EEST 2021 +40 Sat 2 Oct 13:46:45 EEST 2021 +41 Sat 2 Oct 13:46:45 EEST 2021 +42 Sat 2 Oct 13:46:45 EEST 2021 +43 Sat 2 Oct 13:46:45 EEST 2021 +44 Sat 2 Oct 13:46:45 EEST 2021 +45 Sat 2 Oct 13:46:45 EEST 2021 +46 Sat 2 Oct 13:46:45 EEST 2021 +47 Sat 2 Oct 13:46:45 EEST 2021 +48 Sat 2 Oct 13:46:45 EEST 2021 +49 Sat 2 Oct 13:46:45 EEST 2021 +50 Sat 2 Oct 13:46:45 EEST 2021 +51 Sat 2 Oct 13:46:45 EEST 2021 +52 Sat 2 Oct 13:46:45 EEST 2021 +53 Sat 2 Oct 13:46:45 EEST 2021 +54 Sat 2 Oct 13:46:45 EEST 2021 +55 Sat 2 Oct 13:46:45 EEST 2021 +56 Sat 2 Oct 13:46:45 EEST 2021 +57 Sat 2 Oct 13:46:45 EEST 2021 +58 Sat 2 Oct 13:46:45 EEST 2021 +59 Sat 2 Oct 13:46:45 EEST 2021 +60 Sat 2 Oct 13:46:45 EEST 2021 +61 Sat 2 Oct 13:46:45 EEST 2021 +62 Sat 2 Oct 13:46:45 EEST 2021 +63 Sat 2 Oct 13:46:45 EEST 2021 +64 Sat 2 Oct 13:46:45 EEST 2021 +65 Sat 2 Oct 13:46:45 EEST 2021 +66 Sat 2 Oct 13:46:45 EEST 2021 +67 Sat 2 Oct 13:46:45 EEST 2021 +68 Sat 2 Oct 13:46:45 EEST 2021 +69 Sat 2 Oct 13:46:45 EEST 2021 +70 Sat 2 Oct 13:46:45 EEST 2021 +71 Sat 2 Oct 13:46:45 EEST 2021 +72 Sat 2 Oct 13:46:45 EEST 2021 +73 Sat 2 Oct 13:46:45 EEST 2021 +74 Sat 2 Oct 13:46:45 EEST 2021 +75 Sat 2 Oct 13:46:45 EEST 2021 +76 Sat 2 Oct 13:46:45 EEST 2021 +77 Sat 2 Oct 13:46:45 EEST 2021 +78 Sat 2 Oct 13:46:45 EEST 2021 +79 Sat 2 Oct 13:46:45 EEST 2021 +80 Sat 2 Oct 13:46:45 EEST 2021 +81 Sat 2 Oct 13:46:45 EEST 2021 +82 Sat 2 Oct 13:46:45 EEST 2021 +83 Sat 2 Oct 13:46:45 EEST 2021 +84 Sat 2 Oct 13:46:45 EEST 2021 +85 Sat 2 Oct 13:46:45 EEST 2021 +86 Sat 2 Oct 13:46:45 EEST 2021 +87 Sat 2 Oct 13:46:45 EEST 2021 +88 Sat 2 Oct 13:46:45 EEST 2021 +89 Sat 2 Oct 13:46:45 EEST 2021 +90 Sat 2 Oct 13:46:45 EEST 2021 +91 Sat 2 Oct 13:46:45 EEST 2021 +92 Sat 2 Oct 13:46:45 EEST 2021 +93 Sat 2 Oct 13:46:45 EEST 2021 +94 Sat 2 Oct 13:46:45 EEST 2021 +95 Sat 2 Oct 13:46:45 EEST 2021 +96 Sat 2 Oct 13:46:45 EEST 2021 +97 Sat 2 Oct 13:46:45 EEST 2021 +98 Sat 2 Oct 13:46:45 EEST 2021 +99 Sat 2 Oct 13:46:45 EEST 2021 +100 Sat 2 Oct 13:46:45 EEST 2021 +101 Sat 2 Oct 13:46:45 EEST 2021 +102 Sat 2 Oct 13:46:45 EEST 2021 +103 Sat 2 Oct 13:46:45 EEST 2021 +104 Sat 2 Oct 13:46:45 EEST 2021 +105 Sat 2 Oct 13:46:45 EEST 2021 +106 Sat 2 Oct 13:46:45 EEST 2021 +107 Sat 2 Oct 13:46:45 EEST 2021 +108 Sat 2 Oct 13:46:45 EEST 2021 +109 Sat 2 Oct 13:46:45 EEST 2021 +110 Sat 2 Oct 13:46:45 EEST 2021 +111 Sat 2 Oct 13:46:45 EEST 2021 +112 Sat 2 Oct 13:46:45 EEST 2021 +113 Sat 2 Oct 13:46:45 EEST 2021 +114 Sat 2 Oct 13:46:45 EEST 2021 +115 Sat 2 Oct 13:46:45 EEST 2021 +116 Sat 2 Oct 13:46:45 EEST 2021 +117 Sat 2 Oct 13:46:45 EEST 2021 +118 Sat 2 Oct 13:46:45 EEST 2021 +119 Sat 2 Oct 13:46:45 EEST 2021 +120 Sat 2 Oct 13:46:45 EEST 2021 +121 Sat 2 Oct 13:46:45 EEST 2021 +122 Sat 2 Oct 13:46:45 EEST 2021 +123 Sat 2 Oct 13:46:45 EEST 2021 +124 Sat 2 Oct 13:46:45 EEST 2021 +125 Sat 2 Oct 13:46:45 EEST 2021 +126 Sat 2 Oct 13:46:45 EEST 2021 +127 Sat 2 Oct 13:46:45 EEST 2021 +128 Sat 2 Oct 13:46:45 EEST 2021 +129 Sat 2 Oct 13:46:45 EEST 2021 +130 Sat 2 Oct 13:46:45 EEST 2021 +131 Sat 2 Oct 13:46:45 EEST 2021 +132 Sat 2 Oct 13:46:45 EEST 2021 +133 Sat 2 Oct 13:46:45 EEST 2021 +134 Sat 2 Oct 13:46:45 EEST 2021 +135 Sat 2 Oct 13:46:45 EEST 2021 +136 Sat 2 Oct 13:46:45 EEST 2021 +137 Sat 2 Oct 13:46:45 EEST 2021 +138 Sat 2 Oct 13:46:45 EEST 2021 +139 Sat 2 Oct 13:46:45 EEST 2021 +140 Sat 2 Oct 13:46:45 EEST 2021 +141 Sat 2 Oct 13:46:45 EEST 2021 +142 Sat 2 Oct 13:46:45 EEST 2021 +143 Sat 2 Oct 13:46:45 EEST 2021 +144 Sat 2 Oct 13:46:45 EEST 2021 +145 Sat 2 Oct 13:46:45 EEST 2021 +146 Sat 2 Oct 13:46:45 EEST 2021 +147 Sat 2 Oct 13:46:45 EEST 2021 +148 Sat 2 Oct 13:46:45 EEST 2021 +149 Sat 2 Oct 13:46:45 EEST 2021 +150 Sat 2 Oct 13:46:45 EEST 2021 +151 Sat 2 Oct 13:46:45 EEST 2021 +152 Sat 2 Oct 13:46:45 EEST 2021 +153 Sat 2 Oct 13:46:45 EEST 2021 +154 Sat 2 Oct 13:46:45 EEST 2021 +155 Sat 2 Oct 13:46:45 EEST 2021 +156 Sat 2 Oct 13:46:45 EEST 2021 +157 Sat 2 Oct 13:46:45 EEST 2021 +158 Sat 2 Oct 13:46:45 EEST 2021 +159 Sat 2 Oct 13:46:45 EEST 2021 +160 Sat 2 Oct 13:46:45 EEST 2021 +161 Sat 2 Oct 13:46:45 EEST 2021 +162 Sat 2 Oct 13:46:45 EEST 2021 +163 Sat 2 Oct 13:46:45 EEST 2021 +164 Sat 2 Oct 13:46:45 EEST 2021 +165 Sat 2 Oct 13:46:45 EEST 2021 +166 Sat 2