diff options
author | matthieu <matthieu.cneude@gmail.com> | 2021-10-26 06:36:36 +0200 |
---|---|---|
committer | matthieu <matthieu.cneude@gmail.com> | 2021-10-26 06:36:36 +0200 |
commit | b6947e399bd201b8372c3d9c67ea489a04372927 (patch) | |
tree | e674be70c3e7fa69f4b68c5a6573de7de9eb33d9 | |
parent | ae557aa5c7d066d1958ce1c3756593f4dffa8f80 (diff) |
Quick clean up
Don't need to process widget sequententially
-rw-r--r-- | cmd/root.go | 2 | ||||
-rw-r--r-- | internal/project.go | 64 |
2 files changed, 4 insertions, 62 deletions
diff --git a/cmd/root.go b/cmd/root.go index 3cbefc4..9c84428 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -218,8 +218,6 @@ func build(file string, tui *internal.Tui) { } project.WithLocalhost(localhost) - // TODO choice between concurency and non concurency - // renderFuncs := project.CreateNonConcWidgets() renderFuncs := project.CreateWidgets() if !debug { project.Render(renderFuncs) diff --git a/internal/project.go b/internal/project.go index 8390745..b833645 100644 --- a/internal/project.go +++ b/internal/project.go @@ -195,7 +195,7 @@ func (p *project) CreateWidgets() [][][]func() error { continue } - go getChannelRenderers(service, serviceName, w, p.tui, ch) + go getRenderers(service, serviceName, w, p.tui, ch) } } } @@ -216,10 +216,9 @@ func (p *project) CreateWidgets() [][][]func() error { return funcs } -// getConcurentRenderers and fetch information via different ways depending on Widget (API / SSH / ...) -// A function to display the widget will be send to a channel. -// One channel per widget to keep the widget order in a slice. -func getChannelRenderers(s service, name string, w Widget, tui *Tui, c chan<- func() error) { +// getRenderers to display the widgets. +// One channel per widget to keep the order of widget in a slice. +func getRenderers(s service, name string, w Widget, tui *Tui, c chan<- func() error) { if s == nil { c <- DisplayError(tui, errors.Errorf("can't use widget %s without service %s.", w.Name, name)) } else { @@ -233,61 +232,6 @@ func getChannelRenderers(s service, name string, w Widget, tui *Tui, c chan<- fu close(c) } -// Create all the widgets and populate them with data. -// Return slice of widgets -func (p *project) CreateNonConcWidgets() [][][]func() error { - // TODO: use display.box instead of this shortcut - err := p.addTitle(p.tui) - if err != nil { - err = errors.Wrapf(err, "can't add project title %s", p.name) - DisplayError(p.tui, err)() - } - - funcs := make([][][]func() error, len(p.widgets)) - - for ir, row := range p.widgets { - for ic, col := range row { - funcs[ir] = append(funcs[ir], []func() error{}) - for _, w := range col { - w = p.addDefaultTheme(w) - - service, err := p.mapServiceID(w.serviceID()) - if err != nil { - funcs[ir][ic] = append(funcs[ir][ic], DisplayError(p.tui, err)) - continue - } - - serviceName, err := mapServiceName(w.serviceID()) - if err != nil { - funcs[ir][ic] = append(funcs[ir][ic], DisplayError(p.tui, err)) - continue - } - - funcs[ir][ic] = append(funcs[ir][ic], getFuncRenderers(service, serviceName, w, p.tui)) - } - } - } - - return funcs -} - -func getFuncRenderers(s service, name string, w Widget, tui *Tui) (f func() error) { - if s == nil { - f = DisplayError(tui, errors.Errorf( - "Configuration error - you can't use the widget %s without the service %s.", - w.Name, - name, - )) - } - - f, err := s.CreateWidgets(w, tui) - if err != nil { - f = DisplayError(tui, err) - } - - return f -} - func (p *project) Render(funcs [][][]func() error) { for r, row := range p.widgets { for c, col := range row { |