From c7495303526c61783f938b3e84682eef62c83b29 Mon Sep 17 00:00:00 2001 From: Will Vedder Date: Mon, 13 Mar 2023 10:50:33 -0400 Subject: [PATCH] Separating view for log tail and log list --- internal/cli/logs.go | 5 ++--- internal/display/logs.go | 35 ++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/internal/cli/logs.go b/internal/cli/logs.go index 1678c5a6d..704765b5f 100644 --- a/internal/cli/logs.go +++ b/internal/cli/logs.go @@ -66,8 +66,7 @@ func listLogsCmd(cli *cli) *cobra.Command { return fmt.Errorf("An unexpected error occurred while getting logs: %v", err) } - var logsCh chan []*management.Log - cli.renderer.LogList(list, logsCh, !cli.debug) + cli.renderer.LogList(list, !cli.debug) return nil }, } @@ -154,7 +153,7 @@ func tailLogsCmd(cli *cli) *cobra.Command { } }() - cli.renderer.LogList(list, logsCh, !cli.debug) + cli.renderer.LogTail(list, logsCh, !cli.debug) return nil }, } diff --git a/internal/display/logs.go b/internal/display/logs.go index 44e184585..b4559ac13 100644 --- a/internal/display/logs.go +++ b/internal/display/logs.go @@ -144,7 +144,7 @@ func (v *logView) typeDesc() (typ, desc string) { return typ, desc } -func (r *Renderer) LogList(logs []*management.Log, ch <-chan []*management.Log, silent bool) { +func (r *Renderer) LogList(logs []*management.Log, silent bool) { resource := "logs" r.Heading(resource) @@ -160,23 +160,28 @@ func (r *Renderer) LogList(logs []*management.Log, ch <-chan []*management.Log, res = append(res, &logView{Log: l, silent: silent, raw: l}) } - var viewChan chan View + r.Results(res) +} + +func (r *Renderer) LogTail(logs []*management.Log, ch <-chan []*management.Log, silent bool) { + r.Heading("logs") + + var res []View + for _, l := range logs { + res = append(res, &logView{Log: l, silent: silent, raw: l}) + } - if ch != nil { - viewChan = make(chan View) + viewChan := make(chan View) - go func() { - defer close(viewChan) + go func() { + defer close(viewChan) - for list := range ch { - for _, l := range list { - viewChan <- &logView{Log: l, silent: silent, raw: l} - } + for list := range ch { + for _, l := range list { + viewChan <- &logView{Log: l, silent: silent, raw: l} } - }() - - r.Stream(res, viewChan) // streams results for `auth0 logs tail` - } + } + }() - r.Results(res) // Includes headers for `auth0 logs list` + r.Stream(res, viewChan) }