Proposal: add an option to ovs-ofctl utility so as to obtain colorized output in tty, for easier reading. Currently, only the dump-flows command supports colors.
A new `--color` option has been added to ovs-ofctl so as to indicate whether color markers should be used or not. It can be set to `always` (force colors), `never` (no colors) or `auto` (use colors only if output is a tty). If provided without any value, it is the same as `auto`. If the option is not provided at all, colors are disabled by default. An example screenshot of colored output is available at the following address: https://github.com/6WIND/ovs/blob/colors/README-colors.md I ran the test suite (`make check`) and got 1819 tests successful, 210 skipped (none failed). Logs are available at the following address: https://github.com/6WIND/ovs/blob/colors/testsuite.log v2: Instead of using only hardcoded colors, it is now possible to define custom colors by using the `OVS_COLORS` environment variable (on the ls or grep tools model). See patch 2/6 (“ovs-ofctl: declare / set up colors for command output”) for more details. This version also splits the two patches of v1 into several smaller patches so as to ease comprehension and review. v3: This version addresses (nearly) all issues pointed out by Ben Pfaff in his review of the v2 (2016-02-24). Namely: * ovs-ofctl manpage has been updated. * NEWS file has been updated. * Value for the `enable_color` variable is now a bool (was an int). * No more sparse warnings on lib/colors.{c,h}. * Better adherence to coding style. * Colors are now held in a global struct. When color is not needed, this struct contains an empty string. In this way, passing the enable_color option to all printing functions is no longer required. Maybe not fixed: * I did not see the clang or gcc warnings mentioned by Ben (on review of patch #2). Anyway this part of the code has been modified, and there are no more static strings for the compiler to complain about. But please tell me if you see warnings again. Not fixed: * I have not squashed the first patch with another one yet, so there is still the issue of the `--color` option that is unused in the first two patches (meanwhile, it makes reviewing the code easier). Should I squash the first three patches? Quentin Monnet (7): ovs-ofctl: add option for color output to dump-flows command ovs-ofctl: declare / set up colors for command output ovs-ofctl: add output colors for flow attributes match: color output of match conditions for ovs-ofctl dump-flows ofp-actions: color output of flow actions for ovs-ofctl dump-flows ovs-ofctl: update manpage for --color option NEWS: update (--color option for ovs-ofctl) NEWS | 1 + lib/automake.mk | 2 + lib/bundle.c | 13 +-- lib/colors.c | 146 ++++++++++++++++++++++++++++++ lib/colors.h | 42 +++++++++ lib/colors.man | 60 +++++++++++++ lib/flow.c | 3 +- lib/learn.c | 49 +++++++---- lib/match.c | 126 ++++++++++++++------------ lib/multipath.c | 9 +- lib/nx-match.c | 9 +- lib/ofp-actions.c | 224 ++++++++++++++++++++++++++++------------------- lib/ofp-print.c | 32 ++++--- lib/util.c | 11 +++ lib/util.h | 2 + manpages.mk | 2 + utilities/ovs-ofctl.8.in | 1 + utilities/ovs-ofctl.c | 37 ++++++++ 18 files changed, 581 insertions(+), 188 deletions(-) create mode 100644 lib/colors.c create mode 100644 lib/colors.h create mode 100644 lib/colors.man -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev