Allow to disable colored output

nbd-vmsplice
Vitaliy Filippov 2021-11-11 01:38:18 +03:00
parent e4efa2c08a
commit 577a563b91
3 changed files with 7 additions and 4 deletions

View File

@ -52,7 +52,7 @@ json11::Json::object cli_tool_t::parse_args(int narg, const char *args[])
{ {
const char *opt = args[i]+2; const char *opt = args[i]+2;
cfg[opt] = i == narg-1 || !strcmp(opt, "json") || !strcmp(opt, "wait-list") || cfg[opt] = i == narg-1 || !strcmp(opt, "json") || !strcmp(opt, "wait-list") ||
!strcmp(opt, "long") || !strcmp(opt, "del") || !strcmp(opt, "long") || !strcmp(opt, "del") || !strcmp(opt, "no-color") ||
!strcmp(opt, "writers-stopped") && strcmp("1", args[i+1]) != 0 !strcmp(opt, "writers-stopped") && strcmp("1", args[i+1]) != 0
? "1" : args[++i]; ? "1" : args[++i];
} }
@ -127,6 +127,7 @@ void cli_tool_t::help()
" --parallel_osds M Work with M osds in parallel when possible (default 4)\n" " --parallel_osds M Work with M osds in parallel when possible (default 4)\n"
" --progress 1|0 Report progress (default 1)\n" " --progress 1|0 Report progress (default 1)\n"
" --cas 1|0 Use online CAS writes when possible (default auto)\n" " --cas 1|0 Use online CAS writes when possible (default auto)\n"
" --no-color Disable colored output\n"
" --json JSON output\n" " --json JSON output\n"
, ,
exe_name, exe_name, exe_name, exe_name, exe_name, exe_name, exe_name, exe_name, exe_name exe_name, exe_name, exe_name, exe_name, exe_name, exe_name, exe_name, exe_name, exe_name
@ -258,6 +259,7 @@ void cli_tool_t::run(json11::Json cfg)
fprintf(stderr, "unknown command: %s\n", cmd[0].string_value().c_str()); fprintf(stderr, "unknown command: %s\n", cmd[0].string_value().c_str());
exit(1); exit(1);
} }
color = !cfg["no-color"].bool_value();
json_output = cfg["json"].bool_value(); json_output = cfg["json"].bool_value();
iodepth = cfg["iodepth"].uint64_value(); iodepth = cfg["iodepth"].uint64_value();
if (!iodepth) if (!iodepth)

View File

@ -27,7 +27,7 @@ public:
bool list_first = false; bool list_first = false;
bool json_output = false; bool json_output = false;
int log_level = 0; int log_level = 0;
int mode = 0; bool color = false;
ring_loop_t *ringloop = NULL; ring_loop_t *ringloop = NULL;
epoll_manager_t *epmgr = NULL; epoll_manager_t *epmgr = NULL;

View File

@ -348,7 +348,7 @@ resume_1:
kv.second["size_fmt"] = format_size(kv.second["size"].uint64_value()); kv.second["size_fmt"] = format_size(kv.second["size"].uint64_value());
kv.second["ro"] = kv.second["readonly"].bool_value() ? "RO" : "-"; kv.second["ro"] = kv.second["readonly"].bool_value() ? "RO" : "-";
} }
printf("%s", print_table(to_list(), cols, true).c_str()); printf("%s", print_table(to_list(), cols, parent->color).c_str());
state = 100; state = 100;
} }
}; };
@ -393,7 +393,8 @@ std::string print_table(json11::Json items, json11::Json header, bool use_esc)
} }
} }
if (use_esc) if (use_esc)
str += "\033[0m\n"; str += "\033[0m";
str += "\n";
for (auto & item: items.array_items()) for (auto & item: items.array_items())
{ {
for (int i = 0; i < header.array_items().size(); i++) for (int i = 0; i < header.array_items().size(); i++)