summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaas Lalani <maas@lalani.dev>2023-12-21 15:09:00 -0500
committerGitHub <noreply@github.com>2023-12-21 15:09:00 -0500
commit6a275b423fcdc11677b1ecbf1cd6e7ea6faf01e8 (patch)
treeb8910e5bb37f9a4406552e0019027ec55800938d
parent4a00db207abe4a3e534d3a32ab885cebe1e0cc31 (diff)
feat(spin): stdout streaming (#467)
-rw-r--r--spin/spin.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/spin/spin.go b/spin/spin.go
index fe4294d..0daa2d4 100644
--- a/spin/spin.go
+++ b/spin/spin.go
@@ -15,12 +15,14 @@
package spin
import (
+ "os"
"os/exec"
"strings"
"time"
"github.com/charmbracelet/gum/internal/exit"
"github.com/charmbracelet/gum/timeout"
+ "github.com/mattn/go-isatty"
"github.com/charmbracelet/bubbles/spinner"
tea "github.com/charmbracelet/bubbletea"
@@ -56,8 +58,12 @@ func commandStart(command []string) tea.Cmd {
}
cmd := exec.Command(command[0], args...) //nolint:gosec
- cmd.Stdout = &outbuf
- cmd.Stderr = &errbuf
+ if isatty.IsTerminal(os.Stdout.Fd()) {
+ cmd.Stdout = &outbuf
+ cmd.Stderr = &errbuf
+ } else {
+ cmd.Stdout = os.Stdout
+ }
_ = cmd.Run()
@@ -82,8 +88,8 @@ func (m model) Init() tea.Cmd {
)
}
func (m model) View() string {
- if m.quitting {
- return ""
+ if m.quitting && m.showOutput {
+ return strings.TrimPrefix(errbuf.String()+"\n"+outbuf.String(), "\n")
}
var str string