interactive.go

 1package cmd
 2
 3import (
 4	"os"
 5
 6	"github.com/charmbracelet/x/term"
 7)
 8
 9// isStdinTerminal is a package-level variable so tests can override it.
10// Production code uses term.IsTerminal(os.Stdin.Fd()).
11var isStdinTerminal = func() bool {
12	return term.IsTerminal(os.Stdin.Fd())
13}
14
15// isInteractive reports whether keld should launch its TUI.
16// It returns false when stdin is not a terminal or when
17// KELD_NONINTERACTIVE is set to a non-empty value.
18func isInteractive() bool {
19	if os.Getenv("KELD_NONINTERACTIVE") != "" {
20		return false
21	}
22	return isStdinTerminal()
23}