From 659eed777da037fb4cd9327d39eb6750aaf65075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Fri, 14 Jan 2022 15:42:02 +0100 Subject: [PATCH] Have TerminalTheme invoke DetectTerminalTheme if necessary --- pkg/iostreams/iostreams.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/iostreams/iostreams.go b/pkg/iostreams/iostreams.go index e07111450..cf7a0b04d 100644 --- a/pkg/iostreams/iostreams.go +++ b/pkg/iostreams/iostreams.go @@ -69,35 +69,37 @@ func (s *IOStreams) HasTrueColor() bool { return s.hasTrueColor } -func (s *IOStreams) DetectTerminalTheme() string { +// DetectTerminalTheme is a utility to call before starting the output pager so that the terminal background +// can be reliably detected. +func (s *IOStreams) DetectTerminalTheme() { if !s.ColorEnabled() { s.terminalTheme = "none" - return "none" + return } if s.pagerProcess != nil { s.terminalTheme = "none" - return "none" + return } style := os.Getenv("GLAMOUR_STYLE") if style != "" && style != "auto" { s.terminalTheme = "none" - return "none" + return } if termenv.HasDarkBackground() { s.terminalTheme = "dark" - return "dark" + return } s.terminalTheme = "light" - return "light" } +// TerminalTheme returns "light", "dark", or "none" depending on the background color of the terminal. func (s *IOStreams) TerminalTheme() string { if s.terminalTheme == "" { - return "none" + s.DetectTerminalTheme() } return s.terminalTheme