Files
rikuri/cli.go
2026-04-20 21:38:22 +02:00

41 lines
799 B
Go

// Command-line arguments parsing and formatted console output.
package cli
import (
"os"
"sync"
)
// Terminal capabilites.
type TerminalInfo struct {
IsTTY bool
SupportsColor bool
Width int
}
// Returns cached TerminalInfo for os.Stdin.
var GetStdinInfo = sync.OnceValue(func() TerminalInfo {
return GetTerminalInfo(os.Stdin)
})
// Returns cached TerminalInfo for os.Stdout.
var GetStdoutInfo = sync.OnceValue(func() TerminalInfo {
return GetTerminalInfo(os.Stdout)
})
// Returns cached TerminalInfo for os.Stderr.
var GetStderrInfo = sync.OnceValue(func() TerminalInfo {
return GetTerminalInfo(os.Stderr)
})
type ExitReason uint8
const (
UserError ExitReason = 1
BadUsage = 2
InternalError = 3
)
func ShortCircuit() {
os.Exit(0)
}