]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
color: Handle NO_COLOR environment variable in default_color_opt()
authorBen Hutchings <benh@debian.org>
Wed, 19 Mar 2025 21:51:57 +0000 (22:51 +0100)
committerDavid Ahern <dsahern@kernel.org>
Mon, 24 Mar 2025 02:50:54 +0000 (02:50 +0000)
The NO_COLOR environment variable is a widely supported way for users
to disable coloured text output.  See <https://no-color.org/>.  In
case iproute2 is configured to use colours by default, allow this to
be overridden by setting NO_COLOR.

This is done in default_color_opt() so that colours can still be
explicitly enabled with a command-line option.

Signed-off-by: Ben Hutchings <benh@debian.org>
Signed-off-by: David Ahern <dsahern@kernel.org>
lib/color.c

index 5c4cc3294e48d98bf81666a32395caeed3f3bb2c..3c6db08d227d6c6478e7d9037ce28dc5e62cab5d 100644 (file)
@@ -83,6 +83,13 @@ static void enable_color(void)
 
 int default_color_opt(void)
 {
+       const char *no_color;
+
+       /* If NO_COLOR has a non-empty value, coloured output is never wanted */
+       no_color = getenv("NO_COLOR");
+       if (no_color && *no_color)
+               return COLOR_OPT_NEVER;
+
        return CONF_COLOR;
 }