From 1ff3ecb5b08b40686b0e03cf79c4233c5bf99396 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 5 Jun 2018 12:44:45 -0400 Subject: fixup statusline --- go/src/cow-dedupe/dedupe.go | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) (limited to 'go/src/cow-dedupe/dedupe.go') diff --git a/go/src/cow-dedupe/dedupe.go b/go/src/cow-dedupe/dedupe.go index 4913f3d..0c40d4a 100644 --- a/go/src/cow-dedupe/dedupe.go +++ b/go/src/cow-dedupe/dedupe.go @@ -27,22 +27,40 @@ func errhandle(err error) { } } -func myStatusLine() statusline.StatusLine { - var outs []statusline.StatusLine +var myStatusLine = func() func() statusline.StatusLine { + var outs []func() statusline.StatusLine if C.isatty(2) != 0 { - outs = append(outs, statusline.StopWatch(statusline.RateLimit(statusline.New(os.Stderr), time.Second/2), time.Second)) + fmt.Println("Output: TTY") + outs = append(outs, func() statusline.StatusLine { + return statusline.StopWatch(statusline.RateLimit(statusline.TTY(os.Stderr), time.Second/2), time.Second) + }) } if os.Getenv("NOTIFY_SOCKET") != "" { - outs = append(outs, statusline.RateLimit(statusline.DaemonStatus(0), time.Second/2)) + fmt.Println("Output: SD") + outs = append(outs, func() statusline.StatusLine { + return statusline.RateLimit(statusline.DaemonStatus(0), time.Second/2) + }) + outs = append(outs, func() statusline.StatusLine { + return statusline.RateLimit(statusline.Log(os.Stderr), time.Minute) + }) } if len(outs) == 0 { - outs = append(outs, statusline.New(os.Stderr)) + fmt.Println("Output: ERR") + outs = append(outs, func() statusline.StatusLine { + return statusline.Log(os.Stderr) + }) } if len(outs) == 1 { return outs[0] } - return statusline.Tee(outs...) -} + return func() statusline.StatusLine { + var sls []statusline.StatusLine + for _, fn := range outs { + sls = append(sls, fn()) + } + return statusline.Tee(sls...) + } +}() func getFiemaps(paths []string) map[string][]string { var err error @@ -216,7 +234,12 @@ func main() { fiemap2filenames := getFiemaps(os.Args[1:]) - sl := statusline.StopWatch(statusline.New(os.Stderr), time.Second) + var sl statusline.StatusLine + if C.isatty(2) != 0 { + sl = statusline.StopWatch(statusline.TTY(os.Stderr), time.Second) + } else { + sl = statusline.Log(os.Stderr) + } sl.Put("Building list of spanning files...") filename2fiemap := map[string]string{} -- cgit v1.2.3