fix(spin): if not a tty, only print title, do not open tty for stdin (#763)

closes #328
This commit is contained in:
Carlos Alexandro Becker 2024-12-11 14:17:03 -03:00 committed by GitHub
commit cf2da6406c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 3 deletions

View file

@ -26,16 +26,22 @@ func (o Options) Run() error {
align: o.Align,
showOutput: o.ShowOutput && isTTY,
showError: o.ShowError,
isTTY: isTTY,
}
ctx, cancel := timeout.Context(o.Timeout)
defer cancel()
tm, err := tea.NewProgram(
m,
opts := []tea.ProgramOption{
tea.WithOutput(os.Stderr),
tea.WithContext(ctx),
).Run()
}
if !isTTY {
opts = append(opts, tea.WithInput(nil))
}
tm, err := tea.NewProgram(m, opts...).Run()
if err != nil {
return fmt.Errorf("unable to run action: %w", err)
}

View file

@ -32,6 +32,7 @@ type model struct {
align string
command []string
quitting bool
isTTY bool
status int
stdout string
stderr string
@ -101,6 +102,10 @@ func (m model) Init() tea.Cmd {
}
func (m model) View() string {
if !m.isTTY {
return m.title
}
if m.quitting && m.showOutput {
return strings.TrimPrefix(errbuf.String()+"\n"+outbuf.String(), "\n")
}