Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1436321 > unrolled thread

[PATCH] checkkconfigsymbols.py: add --no-color option

Started byAndrew Donnellan <andrew.donnellan@au1.ibm.com>
First post2016-07-04 10:50 +0200
Last post2016-07-05 10:50 +0200
Articles 6 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] checkkconfigsymbols.py: add --no-color option Andrew Donnellan <andrew.donnellan@au1.ibm.com> - 2016-07-04 10:50 +0200
    Re: [PATCH] checkkconfigsymbols.py: add --no-color option Valentin Rothberg <valentinrothberg@gmail.com> - 2016-07-04 12:50 +0200
    Re: checkkconfigsymbols.py: add --no-color option Josh Triplett <josh@joshtriplett.org> - 2016-07-04 14:30 +0200
      Re: checkkconfigsymbols.py: add --no-color option Andrew Donnellan <andrew.donnellan@au1.ibm.com> - 2016-07-05 09:30 +0200
    [PATCH v2] checkkconfigsymbols.py: add --no-color option, don't print color to non-TTY Andrew Donnellan <andrew.donnellan@au1.ibm.com> - 2016-07-05 09:50 +0200
      Re: [PATCH v2] checkkconfigsymbols.py: add --no-color option, don't  print color to non-TTY Valentin Rothberg <valentinrothberg@gmail.com> - 2016-07-05 10:50 +0200

#1436321 — [PATCH] checkkconfigsymbols.py: add --no-color option

FromAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Date2016-07-04 10:50 +0200
Subject[PATCH] checkkconfigsymbols.py: add --no-color option
Message-ID<rR7JM-3ot-29@gated-at.bofh.it>
Add a new option, --no-color, to get rid of ANSI colour escape codes in the
output. Useful if redirecting output to a file or piping to another script.

(It should really be --no-colour, but I'll accept US spelling in the name
of consistency with existing usage in the code comments...)

Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
---
 scripts/checkkconfigsymbols.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/scripts/checkkconfigsymbols.py b/scripts/checkkconfigsymbols.py
index df643f6..a9eba02 100755
--- a/scripts/checkkconfigsymbols.py
+++ b/scripts/checkkconfigsymbols.py
@@ -82,6 +82,10 @@ def parse_options():
                       default=False,
                       help="Reset current Git tree even when it's dirty.")
 
+    parser.add_option('', '--no-color', dest='no_color', action='store_true',
+                      default=False,
+                      help="Don't print colored output.")
+
     (opts, _) = parser.parse_args()
 
     if opts.commit and opts.diff:
@@ -116,6 +120,9 @@ def main():
     """Main function of this module."""
     opts = parse_options()
 
+    global no_color
+    no_color = opts.no_color
+
     if opts.sim and not opts.commit and not opts.diff:
         sims = find_sims(opts.sim, opts.ignore)
         if sims:
@@ -202,14 +209,14 @@ def yel(string):
     """
     Color %string yellow.
     """
-    return "\033[33m%s\033[0m" % string
+    return string if no_color else "\033[33m%s\033[0m" % string
 
 
 def red(string):
     """
     Color %string red.
     """
-    return "\033[31m%s\033[0m" % string
+    return string if no_color else "\033[31m%s\033[0m" % string
 
 
 def execute(cmd):
-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan@au1.ibm.com  IBM Australia Limited

[toc] | [next] | [standalone]


#1436365

FromValentin Rothberg <valentinrothberg@gmail.com>
Date2016-07-04 12:50 +0200
Message-ID<rR9BT-4wP-1@gated-at.bofh.it>
In reply to#1436321
Hi Andrew,

thanks for your patch.  Please remove the colour comment from the commit
message and resend the patch.  Such comments are better below the '---'.

On Jul 04 '16 18:39, Andrew Donnellan wrote:
> Add a new option, --no-color, to get rid of ANSI colour escape codes in the
> output. Useful if redirecting output to a file or piping to another script.
> 
> (It should really be --no-colour, but I'll accept US spelling in the name
> of consistency with existing usage in the code comments...)
> 
> Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>

Acked-by: Valentin Rothberg <valentinrothberg@gmail.com>

Thanks,
 Valentin
> ---
>  scripts/checkkconfigsymbols.py | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/checkkconfigsymbols.py b/scripts/checkkconfigsymbols.py
> index df643f6..a9eba02 100755
> --- a/scripts/checkkconfigsymbols.py
> +++ b/scripts/checkkconfigsymbols.py
> @@ -82,6 +82,10 @@ def parse_options():
>                        default=False,
>                        help="Reset current Git tree even when it's dirty.")
>  
> +    parser.add_option('', '--no-color', dest='no_color', action='store_true',
> +                      default=False,
> +                      help="Don't print colored output.")
> +
>      (opts, _) = parser.parse_args()
>  
>      if opts.commit and opts.diff:
> @@ -116,6 +120,9 @@ def main():
>      """Main function of this module."""
>      opts = parse_options()
>  
> +    global no_color
> +    no_color = opts.no_color
> +
>      if opts.sim and not opts.commit and not opts.diff:
>          sims = find_sims(opts.sim, opts.ignore)
>          if sims:
> @@ -202,14 +209,14 @@ def yel(string):
>      """
>      Color %string yellow.
>      """
> -    return "\033[33m%s\033[0m" % string
> +    return string if no_color else "\033[33m%s\033[0m" % string
>  
>  
>  def red(string):
>      """
>      Color %string red.
>      """
> -    return "\033[31m%s\033[0m" % string
> +    return string if no_color else "\033[31m%s\033[0m" % string
>  
>  
>  def execute(cmd):
> -- 
> Andrew Donnellan              OzLabs, ADL Canberra
> andrew.donnellan@au1.ibm.com  IBM Australia Limited
> 

[toc] | [prev] | [next] | [standalone]


#1436448 — Re: checkkconfigsymbols.py: add --no-color option

FromJosh Triplett <josh@joshtriplett.org>
Date2016-07-04 14:30 +0200
SubjectRe: checkkconfigsymbols.py: add --no-color option
Message-ID<rRbaG-5yi-27@gated-at.bofh.it>
In reply to#1436321
On Mon, Jul 04, 2016 at 06:39:30PM +1000, Andrew Donnellan wrote:
> Add a new option, --no-color, to get rid of ANSI colour escape codes in the
> output. Useful if redirecting output to a file or piping to another script.
> 
> (It should really be --no-colour, but I'll accept US spelling in the name
> of consistency with existing usage in the code comments...)
> 
> Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
> Acked-by: Valentin Rothberg <valentinrothberg@gmail.com>

Rather than requiring an explicit option, how about detecting
whether stdout is a TTY and automatically suppressing color?
You could check "os.isatty(1)" in main(), and set a global "color =
False".  That would automatically handle the cases of redirecting to a
file or piping to another script, without requiring the user to pass
--no-color.

- Josh Triplett

[toc] | [prev] | [next] | [standalone]


#1436813 — Re: checkkconfigsymbols.py: add --no-color option

FromAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Date2016-07-05 09:30 +0200
SubjectRe: checkkconfigsymbols.py: add --no-color option
Message-ID<rRsXU-87j-7@gated-at.bofh.it>
In reply to#1436448
On 04/07/16 22:24, Josh Triplett wrote:
> Rather than requiring an explicit option, how about detecting
> whether stdout is a TTY and automatically suppressing color?
> You could check "os.isatty(1)" in main(), and set a global "color =
> False".  That would automatically handle the cases of redirecting to a
> file or piping to another script, without requiring the user to pass
> --no-color.

That's a good point - I'll submit a v2 with that.

-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan@au1.ibm.com  IBM Australia Limited

[toc] | [prev] | [next] | [standalone]


#1436823 — [PATCH v2] checkkconfigsymbols.py: add --no-color option, don't print color to non-TTY

FromAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Date2016-07-05 09:50 +0200
Subject[PATCH v2] checkkconfigsymbols.py: add --no-color option, don't print color to non-TTY
Message-ID<rRthg-8dT-15@gated-at.bofh.it>
In reply to#1436321
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>

---

V1->V2:
	- automatically detect non-TTYs and disable colour output.
	  Suggested by Josh Triplett
---
 scripts/checkkconfigsymbols.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/scripts/checkkconfigsymbols.py b/scripts/checkkconfigsymbols.py
index df643f6..b140fc9 100755
--- a/scripts/checkkconfigsymbols.py
+++ b/scripts/checkkconfigsymbols.py
@@ -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):
-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan@au1.ibm.com  IBM Australia Limited

[toc] | [prev] | [next] | [standalone]


#1436847 — Re: [PATCH v2] checkkconfigsymbols.py: add --no-color option, don't print color to non-TTY

FromValentin Rothberg <valentinrothberg@gmail.com>
Date2016-07-05 10:50 +0200
SubjectRe: [PATCH v2] checkkconfigsymbols.py: add --no-color option, don't print color to non-TTY
Message-ID<rRudj-qd-13@gated-at.bofh.it>
In reply to#1436823
Hi Andrew,

I am fine with this version of the patch, thanks.  Usually patches to
this script go through Greg's misc tree.

Best regards,
 Valentin

On Tue, Jul 5, 2016 at 9:47 AM, Andrew Donnellan
<andrew.donnellan@au1.ibm.com> wrote:
> 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>
>
> ---
>
> V1->V2:
>         - automatically detect non-TTYs and disable colour output.
>           Suggested by Josh Triplett
> ---
>  scripts/checkkconfigsymbols.py | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/checkkconfigsymbols.py b/scripts/checkkconfigsymbols.py
> index df643f6..b140fc9 100755
> --- a/scripts/checkkconfigsymbols.py
> +++ b/scripts/checkkconfigsymbols.py
> @@ -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):
> --
> Andrew Donnellan              OzLabs, ADL Canberra
> andrew.donnellan@au1.ibm.com  IBM Australia Limited
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web