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}