From 26fee254db3d5cbe460a398062f3bca2682f5a1c Mon Sep 17 00:00:00 2001 From: Greg Soltis Date: Fri, 14 Jul 2023 11:13:59 -0700 Subject: [PATCH] fix(turborepo): Export and match on our copy of BasicUI (#5532) Co-authored-by: Greg Soltis --- cli/internal/spinner/spinner.go | 2 ++ cli/internal/ui/ui_factory.go | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/cli/internal/spinner/spinner.go b/cli/internal/spinner/spinner.go index 8ce6b4a504478..812e53bc0cfe8 100644 --- a/cli/internal/spinner/spinner.go +++ b/cli/internal/spinner/spinner.go @@ -18,6 +18,8 @@ func getWriterAndColor(terminal cli.Ui, useColor bool) (io.Writer, bool) { switch terminal := terminal.(type) { case *cli.BasicUi: return terminal.Writer, useColor + case *ui.BasicUI: + return terminal.Writer, useColor case *cli.ColoredUi: return getWriterAndColor(terminal.Ui, true) case *cli.ConcurrentUi: diff --git a/cli/internal/ui/ui_factory.go b/cli/internal/ui/ui_factory.go index d532fd2856ee2..6fb7daaec3848 100644 --- a/cli/internal/ui/ui_factory.go +++ b/cli/internal/ui/ui_factory.go @@ -24,29 +24,29 @@ type Factory interface { type BasicUIFactory struct { } -// basicUI is an implementation of Ui that just outputs to the given +// BasicUI is an implementation of Ui that just outputs to the given // writer. This UI is not threadsafe by default, but you can wrap it // in a ConcurrentUi to make it safe. // // Inlined from cli.Ui to fuse newlines to lines being logged. This is // probably not the optimal way to do it, but it works for now. -type basicUI struct { +type BasicUI struct { Reader io.Reader Writer io.Writer ErrorWriter io.Writer } // Ask implements ui.Cli.Ask for BasicUi -func (u *basicUI) Ask(query string) (string, error) { +func (u *BasicUI) Ask(query string) (string, error) { return u.ask(query, false) } // AskSecret implements ui.Cli.AskSecret for BasicUi -func (u *basicUI) AskSecret(query string) (string, error) { +func (u *BasicUI) AskSecret(query string) (string, error) { return u.ask(query, true) } -func (u *basicUI) ask(query string, secret bool) (string, error) { +func (u *BasicUI) ask(query string, secret bool) (string, error) { if _, err := fmt.Fprint(u.Writer, query+" "); err != nil { return "", err } @@ -92,7 +92,7 @@ func (u *basicUI) ask(query string, secret bool) (string, error) { } // Error implements ui.Cli.Error for BasicUi -func (u *basicUI) Error(message string) { +func (u *BasicUI) Error(message string) { w := u.Writer if u.ErrorWriter != nil { w = u.ErrorWriter @@ -102,23 +102,23 @@ func (u *basicUI) Error(message string) { } // Info implements ui.Cli.Info for BasicUi -func (u *basicUI) Info(message string) { +func (u *BasicUI) Info(message string) { u.Output(message) } // Output implements ui.Cli.Output for BasicUi -func (u *basicUI) Output(message string) { +func (u *BasicUI) Output(message string) { fmt.Fprintf(u.Writer, "%v\n", message) } // Warn implements ui.Cli.Warn for BasicUi -func (u *basicUI) Warn(message string) { +func (u *BasicUI) Warn(message string) { u.Error(message) } // Build builds a cli.BasicUi from input, output and error IOs func (factory *BasicUIFactory) Build(in io.Reader, out io.Writer, err io.Writer) cli.Ui { - return &basicUI{ + return &BasicUI{ Reader: in, Writer: out, ErrorWriter: err,