diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2019-03-01 16:48:01 +0100 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2019-03-01 16:48:01 +0100 |
| commit | 8fa76df354eb0156af232453cfcefd4087b63b81 (patch) | |
| tree | 5db63f7e0343e3758002bfdc28b106d5fa2867a1 | |
| parent | 58b26d291019b46b581ec1aeb76da2bff4042635 (diff) | |
| download | rabbitmq-server-git-8fa76df354eb0156af232453cfcefd4087b63b81.tar.gz | |
rabbit_ff_extra: Honor the `UseColors` flag
Use the new `rabbit_pretty_stdout:ascii_color/2` helper for that.
`isatty/0` is moved to `rabbit_pretty_stdout`.
| -rw-r--r-- | src/rabbit_ff_extra.erl | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/src/rabbit_ff_extra.erl b/src/rabbit_ff_extra.erl index 35cd98d740..e3500e249e 100644 --- a/src/rabbit_ff_extra.erl +++ b/src/rabbit_ff_extra.erl @@ -91,15 +91,17 @@ cli_info(FeatureFlags) -> %% @param Options Options to tune what is displayed and how. info(Options) -> + UseColors = use_colors(Options), %% Two tables: one for stable feature flags, one for experimental ones. StableFF = rabbit_feature_flags:list(all, stable), case maps:size(StableFF) of 0 -> ok; _ -> - io:format("~n~s## Stable feature flags:~s~n", - [rabbit_pretty_stdout:ascii_color(bright_white), - rabbit_pretty_stdout:ascii_color(default)]), + io:format( + "~n~s## Stable feature flags:~s~n", + [rabbit_pretty_stdout:ascii_color(bright_white, UseColors), + rabbit_pretty_stdout:ascii_color(default, UseColors)]), info(StableFF, Options) end, ExpFF = rabbit_feature_flags:list(all, experimental), @@ -107,14 +109,15 @@ info(Options) -> 0 -> ok; _ -> - io:format("~n~s## Experimental feature flags:~s~n", - [rabbit_pretty_stdout:ascii_color(bright_white), - rabbit_pretty_stdout:ascii_color(default)]), + io:format( + "~n~s## Experimental feature flags:~s~n", + [rabbit_pretty_stdout:ascii_color(bright_white, UseColors), + rabbit_pretty_stdout:ascii_color(default, UseColors)]), info(ExpFF, Options) end, case maps:size(StableFF) + maps:size(ExpFF) of 0 -> ok; - _ -> state_legend() + _ -> state_legend(Options) end. -spec info(rabbit_feature_flags:feature_flags(), info_options()) -> ok. @@ -127,15 +130,8 @@ info(Options) -> info(FeatureFlags, Options) -> Verbose = maps:get(verbose, Options, 0), - IsaTty= case os:getenv("TERM") of - %% We don't have access to isatty(3), so let's - %% assume that is $TERM is defined, we can use - %% colors and drawing characters. - false -> false; - _ -> true - end, - UseColors = maps:get(color, Options, IsaTty), - UseLines = maps:get(lines, Options, IsaTty), + UseColors = use_colors(Options), + UseLines = use_lines(Options), %% Table columns: %% | Name | State | Provided by | Description %% @@ -182,10 +178,12 @@ info(FeatureFlags, Options) -> " ~s: ~s~s~s", [Node, rabbit_pretty_stdout: - ascii_color(LabelColor), + ascii_color(LabelColor, + UseColors), Label, rabbit_pretty_stdout: - ascii_color(default)]), + ascii_color(default, + UseColors)]), [empty, empty, empty, @@ -209,7 +207,14 @@ info(FeatureFlags, Options) -> UseColors, UseLines). -state_legend() -> +use_colors(Options) -> + maps:get(color, Options, rabbit_pretty_stdout:isatty()). + +use_lines(Options) -> + maps:get(lines, Options, rabbit_pretty_stdout:isatty()). + +state_legend(Options) -> + UseColors = use_colors(Options), io:format( "~n" "Possible states:~n" @@ -218,12 +223,12 @@ state_legend() -> " ~sUnavailable~s: The feature flag cannot be enabled because one or " "more nodes do not support it~n" "~n", - [rabbit_pretty_stdout:ascii_color(green), - rabbit_pretty_stdout:ascii_color(default), - rabbit_pretty_stdout:ascii_color(yellow), - rabbit_pretty_stdout:ascii_color(default), - rabbit_pretty_stdout:ascii_color(red_bg), - rabbit_pretty_stdout:ascii_color(default)]). + [rabbit_pretty_stdout:ascii_color(green, UseColors), + rabbit_pretty_stdout:ascii_color(default, UseColors), + rabbit_pretty_stdout:ascii_color(yellow, UseColors), + rabbit_pretty_stdout:ascii_color(default, UseColors), + rabbit_pretty_stdout:ascii_color(red_bg, UseColors), + rabbit_pretty_stdout:ascii_color(default, UseColors)]). -spec format_error(any()) -> string(). %% @doc |
