From: Arnaldo Carvalho de Melo <[email protected]>

'perf report --stdio' will colorize entries with most hits and possibly
some other aspects of its output, but those colors gets suppressed if we
redirect the output to a non-tty, allow keeping the colors by adding a
new option, --stdio-color, now this use case will also output escape
sequences for colors:

  $ perf annotate --stdio-color | more

Cc: Adrian Hunter <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/Documentation/perf-report.txt | 7 +++++++
 tools/perf/builtin-report.c              | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/tools/perf/Documentation/perf-report.txt 
b/tools/perf/Documentation/perf-report.txt
index 9cbddc290aff..2d1746295abf 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -265,6 +265,13 @@ OPTIONS
 
 --stdio:: Use the stdio interface.
 
+--stdio-color::
+       'always', 'never' or 'auto', allowing configuring color output
+       via the command line, in addition to via "color.ui" .perfconfig.
+       Use '--stdio-color always' to generate color even when redirecting
+       to a pipe or file. Using just '--stdio-color' is equivalent to
+       using 'always'.
+
 --tui:: Use the TUI interface, that is integrated with annotate and allows
         zooming into DSOs or threads, among other features. Use of --tui
        requires a tty, if one is not present, as when piping to other
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index f6cb357986c6..949e5a15c960 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -817,6 +817,9 @@ int cmd_report(int argc, const char **argv, const char 
*prefix __maybe_unused)
                    "Show raw trace event output (do not use print fmt or 
plugins)"),
        OPT_BOOLEAN(0, "hierarchy", &symbol_conf.report_hierarchy,
                    "Show entries in a hierarchy"),
+       OPT_CALLBACK_DEFAULT(0, "stdio-color", NULL, "mode",
+                            "'always' (default), 'never' or 'auto' only 
applicable to --stdio mode",
+                            stdio__config_color, "always"),
        OPT_END()
        };
        struct perf_data_file file = {
-- 
2.7.4

Reply via email to