diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/clients/stats.go | 9 | ||||
| -rw-r--r-- | internal/config/config.go | 3 | ||||
| -rw-r--r-- | internal/io/signal/signal.go | 4 |
3 files changed, 11 insertions, 5 deletions
diff --git a/internal/clients/stats.go b/internal/clients/stats.go index d5bcd2d..17343b5 100644 --- a/internal/clients/stats.go +++ b/internal/clients/stats.go @@ -8,6 +8,7 @@ import ( "sync" "time" + "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/logger" ) @@ -62,7 +63,7 @@ func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh < switch force { case true: messages = append(messages, fmt.Sprintf("Connection stats: %s", stats)) - s.forcePrintStats(messages) + s.printStatsOnInterrupt(messages) default: logger.Info(stats) } @@ -74,12 +75,12 @@ func (s *stats) Start(ctx context.Context, throttleCh <-chan struct{}, statsCh < } } -func (s *stats) forcePrintStats(messages []string) { +func (s *stats) printStatsOnInterrupt(messages []string) { logger.Pause() for _, message := range messages { - fmt.Println(fmt.Sprintf("\t%s", message)) + fmt.Println(fmt.Sprintf(" %s", message)) } - time.Sleep(time.Second * 3) + time.Sleep(time.Second * time.Duration(config.InterruptTimeoutS)) logger.Resume() } diff --git a/internal/config/config.go b/internal/config/config.go index dc96d6b..276ddcf 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -15,6 +15,9 @@ const ScheduleUser string = "DTAIL-SCHEDULE" // ContinuousUser is used for non-interactive continuous mapreduce queries. const ContinuousUser string = "DTAIL-CONTINUOUS" +// InterruptTimeoutS is used to terminate DTail when Ctrl+C was pressed twice within a given interval. +const InterruptTimeoutS int = 3 + // Client holds a DTail client configuration. var Client *ClientConfig diff --git a/internal/io/signal/signal.go b/internal/io/signal/signal.go index 06abb0b..27c7852 100644 --- a/internal/io/signal/signal.go +++ b/internal/io/signal/signal.go @@ -6,6 +6,8 @@ import ( gosignal "os/signal" "syscall" "time" + + "github.com/mimecast/dtail/internal/config" ) // StatsCh returns a channel for "please print stats" signalling. @@ -27,7 +29,7 @@ func InterruptCh(ctx context.Context) <-chan string { select { case <-sigIntCh: os.Exit(0) - case <-time.After(time.Second * 3): + case <-time.After(time.Second * time.Duration(config.InterruptTimeoutS)): } default: // Stats already printed. |
