Open marc-hb opened 1 year ago
_Originally posted by @marc-hb in https://github.com/zephyrproject-rtos/west/pull/649#discussion_r1169274807_
In west
, colorama handles terminal detection. The following and BARELY TESTED hack seems equivalent to color=always
--- a/src/west/app/main.py
+++ b/src/west/app/main.py
@@ -895,7 +895,7 @@ def main(argv=None):
# Makes ANSI color escapes work on Windows, and strips them when
# stdout/stderr isn't a terminal
- colorama.init()
+ colorama.init(strip=False)
# Create the WestApp instance and let it run.
app = WestApp()
west diff | less -R # color!
west diff | less # as expected, color mojikabe :-(
An interesting question design is: when git
and west
settings conflict, which one wins?
git config color.ui never
west config color always
west diff | less -R # color or not?
To make things even more interesting, git
has not just one color.ui
setting but also another color.status
and who knows what else.
Spotted by @mbolivar-nordic:
Git has an (somewhat inconsistent) set of "color = always" options to override the automated terminal detection. Demo of one of the (too many) options:
It would nice for
west
to offer the same feature.While rarer,
color=never
is sometimes needed too. For instance some CI engines try hard to pretend they are terminals to capture colors but then can fail to display them for some reason.