checkkconfigsymbols.py: add --no-color option, don't print color to non-TTY
authorAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Tue, 5 Jul 2016 07:47:37 +0000 (17:47 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Aug 2016 16:12:07 +0000 (18:12 +0200)
Only print the ANSI colour escape codes if stdout is a TTY. Useful if
redirecting output to a file or piping to another script.

Also add a new option, --no-color, if the user wants to disable colour
output for whatever reason.

Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Acked-by: Valentin Rothberg <valentinrothberg@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
scripts/checkkconfigsymbols.py

index df643f6..b140fc9 100755 (executable)
@@ -82,6 +82,11 @@ def parse_options():
                       default=False,
                       help="Reset current Git tree even when it's dirty.")
 
+    parser.add_option('', '--no-color', dest='color', action='store_false',
+                      default=True,
+                      help="Don't print colored output. Default when not "
+                           "outputting to a terminal.")
+
     (opts, _) = parser.parse_args()
 
     if opts.commit and opts.diff:
@@ -116,6 +121,9 @@ def main():
     """Main function of this module."""
     opts = parse_options()
 
+    global color
+    color = opts.color and sys.stdout.isatty()
+
     if opts.sim and not opts.commit and not opts.diff:
         sims = find_sims(opts.sim, opts.ignore)
         if sims:
@@ -202,14 +210,14 @@ def yel(string):
     """
     Color %string yellow.
     """
-    return "\033[33m%s\033[0m" % string
+    return "\033[33m%s\033[0m" % string if color else string
 
 
 def red(string):
     """
     Color %string red.
     """
-    return "\033[31m%s\033[0m" % string
+    return "\033[31m%s\033[0m" % string if color else string
 
 
 def execute(cmd):