cmd: use term formatting codes for command help text
This commit is contained in:
@@ -160,7 +160,7 @@ void z__b_get_arg_description(struct b_command_arg *arg, b_string *out)
|
|||||||
b_string_append_cstr(out, " ");
|
b_string_append_cstr(out, " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
b_string_append_cstr(out, "[values:");
|
b_string_append_cstr(out, "[[values:");
|
||||||
|
|
||||||
for (size_t i = 0; arg->arg_allowed_values[i]; i++) {
|
for (size_t i = 0; arg->arg_allowed_values[i]; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
|
|||||||
+29
-15
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
#define OUTPUT_STREAM stderr
|
#define OUTPUT_STREAM stderr
|
||||||
|
|
||||||
static struct b_btree command_list = {};
|
static struct b_btree command_list = {0};
|
||||||
|
|
||||||
B_BTREE_DEFINE_SIMPLE_GET(struct b_command, unsigned int, b_node, b_id, get_command)
|
B_BTREE_DEFINE_SIMPLE_GET(struct b_command, unsigned int, b_node, b_id, get_command)
|
||||||
B_BTREE_DEFINE_SIMPLE_INSERT(struct b_command, b_node, b_id, put_command)
|
B_BTREE_DEFINE_SIMPLE_INSERT(struct b_command, b_node, b_id, put_command)
|
||||||
@@ -545,8 +545,9 @@ static void print_options_list(struct b_command *cmd)
|
|||||||
z__b_get_option_description(opt, desc_str);
|
z__b_get_option_description(opt, desc_str);
|
||||||
|
|
||||||
size_t opt_len
|
size_t opt_len
|
||||||
= b_string_get_size(opt_str, B_STRLEN_IGNORE_ESC) + 4;
|
= b_string_get_size(opt_str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD) + 4;
|
||||||
size_t desc_len = b_string_get_size(desc_str, B_STRLEN_IGNORE_ESC);
|
size_t desc_len = b_string_get_size(
|
||||||
|
desc_str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD);
|
||||||
|
|
||||||
if (description_on_separate_line(opt_len, desc_len)) {
|
if (description_on_separate_line(opt_len, desc_len)) {
|
||||||
continue;
|
continue;
|
||||||
@@ -557,7 +558,7 @@ static void print_options_list(struct b_command *cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b_paragraph_format format = {};
|
b_paragraph_format format = {0};
|
||||||
format.p_flags = B_PARAGRAPH_DONT_INDENT_FIRST_LINE;
|
format.p_flags = B_PARAGRAPH_DONT_INDENT_FIRST_LINE;
|
||||||
format.p_left_margin = desb_margin + 4;
|
format.p_left_margin = desb_margin + 4;
|
||||||
format.p_right_margin = 4;
|
format.p_right_margin = 4;
|
||||||
@@ -575,9 +576,12 @@ static void print_options_list(struct b_command *cmd)
|
|||||||
|
|
||||||
z__b_get_option_usage_string(opt, CMD_STR_COLOUR, opt_str);
|
z__b_get_option_usage_string(opt, CMD_STR_COLOUR, opt_str);
|
||||||
z__b_get_option_description(opt, desc_str);
|
z__b_get_option_description(opt, desc_str);
|
||||||
size_t opt_len
|
size_t opt_len = b_string_get_size(
|
||||||
= b_string_get_size(opt_str, B_STRLEN_IGNORE_ESC) + 4;
|
opt_str, B_STRLEN_IGNORE_ESC
|
||||||
size_t desc_len = b_string_get_size(desc_str, B_STRLEN_IGNORE_ESC);
|
| B_STRLEN_IGNORE_MOD)
|
||||||
|
+ 4;
|
||||||
|
size_t desc_len = b_string_get_size(
|
||||||
|
desc_str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD);
|
||||||
|
|
||||||
bool new_paragraph
|
bool new_paragraph
|
||||||
= description_on_separate_line(opt_len, desc_len);
|
= description_on_separate_line(opt_len, desc_len);
|
||||||
@@ -631,14 +635,16 @@ static void print_args_list(struct b_command *cmd)
|
|||||||
|
|
||||||
b_string_clear(str);
|
b_string_clear(str);
|
||||||
z__b_get_arg_usage_string(arg, true, str);
|
z__b_get_arg_usage_string(arg, true, str);
|
||||||
size_t len = b_string_get_size(str, B_STRLEN_IGNORE_ESC) + 4;
|
size_t len = b_string_get_size(
|
||||||
|
str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD)
|
||||||
|
+ 4;
|
||||||
|
|
||||||
if (len > desb_margin) {
|
if (len > desb_margin) {
|
||||||
desb_margin = len;
|
desb_margin = len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b_paragraph_format format = {};
|
b_paragraph_format format = {0};
|
||||||
format.p_flags = B_PARAGRAPH_DONT_INDENT_FIRST_LINE;
|
format.p_flags = B_PARAGRAPH_DONT_INDENT_FIRST_LINE;
|
||||||
format.p_left_margin = desb_margin + 4;
|
format.p_left_margin = desb_margin + 4;
|
||||||
format.p_right_margin = 4;
|
format.p_right_margin = 4;
|
||||||
@@ -653,7 +659,10 @@ static void print_args_list(struct b_command *cmd)
|
|||||||
|
|
||||||
fputs(" ", OUTPUT_STREAM);
|
fputs(" ", OUTPUT_STREAM);
|
||||||
b_fputs(b_string_ptr(str), OUTPUT_STREAM);
|
b_fputs(b_string_ptr(str), OUTPUT_STREAM);
|
||||||
unsigned int len = b_string_get_size(str, B_STRLEN_IGNORE_ESC) + 4;
|
unsigned int len
|
||||||
|
= b_string_get_size(
|
||||||
|
str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD)
|
||||||
|
+ 4;
|
||||||
while (len < format.p_left_margin) {
|
while (len < format.p_left_margin) {
|
||||||
fputc(' ', OUTPUT_STREAM);
|
fputc(' ', OUTPUT_STREAM);
|
||||||
len++;
|
len++;
|
||||||
@@ -682,14 +691,16 @@ static void print_commands_list(struct b_command *cmd)
|
|||||||
|
|
||||||
b_string_clear(str);
|
b_string_clear(str);
|
||||||
get_command_string(sub, str);
|
get_command_string(sub, str);
|
||||||
size_t len = b_string_get_size(str, B_STRLEN_IGNORE_ESC) + 4;
|
size_t len = b_string_get_size(
|
||||||
|
str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD)
|
||||||
|
+ 4;
|
||||||
|
|
||||||
if (len > desb_margin) {
|
if (len > desb_margin) {
|
||||||
desb_margin = len;
|
desb_margin = len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b_paragraph_format format = {};
|
b_paragraph_format format = {0};
|
||||||
format.p_flags = B_PARAGRAPH_DONT_INDENT_FIRST_LINE;
|
format.p_flags = B_PARAGRAPH_DONT_INDENT_FIRST_LINE;
|
||||||
format.p_left_margin = desb_margin + 4;
|
format.p_left_margin = desb_margin + 4;
|
||||||
format.p_right_margin = 4;
|
format.p_right_margin = 4;
|
||||||
@@ -704,7 +715,10 @@ static void print_commands_list(struct b_command *cmd)
|
|||||||
|
|
||||||
fputs(" ", OUTPUT_STREAM);
|
fputs(" ", OUTPUT_STREAM);
|
||||||
b_fputs(b_string_ptr(str), OUTPUT_STREAM);
|
b_fputs(b_string_ptr(str), OUTPUT_STREAM);
|
||||||
unsigned int len = b_string_get_size(str, B_STRLEN_IGNORE_ESC) + 4;
|
unsigned int len
|
||||||
|
= b_string_get_size(
|
||||||
|
str, B_STRLEN_IGNORE_ESC | B_STRLEN_IGNORE_MOD)
|
||||||
|
+ 4;
|
||||||
while (len < format.p_left_margin) {
|
while (len < format.p_left_margin) {
|
||||||
fputc(' ', OUTPUT_STREAM);
|
fputc(' ', OUTPUT_STREAM);
|
||||||
len++;
|
len++;
|
||||||
@@ -816,7 +830,7 @@ struct b_command_option *b_command_get_option_with_short_name(
|
|||||||
|
|
||||||
static void print_usage(struct b_command *cmd)
|
static void print_usage(struct b_command *cmd)
|
||||||
{
|
{
|
||||||
b_paragraph_format format = {};
|
b_paragraph_format format = {0};
|
||||||
format.p_left_margin = format.p_right_margin = 4;
|
format.p_left_margin = format.p_right_margin = 4;
|
||||||
|
|
||||||
b_fprintf(OUTPUT_STREAM, F_YELLOW "USAGE:" F_RESET "\n");
|
b_fprintf(OUTPUT_STREAM, F_YELLOW "USAGE:" F_RESET "\n");
|
||||||
@@ -847,7 +861,7 @@ static void print_usage(struct b_command *cmd)
|
|||||||
|
|
||||||
static void print_help(struct b_command *cmd)
|
static void print_help(struct b_command *cmd)
|
||||||
{
|
{
|
||||||
b_paragraph_format format = {};
|
b_paragraph_format format = {0};
|
||||||
|
|
||||||
if (!cmd->b_parent) {
|
if (!cmd->b_parent) {
|
||||||
b_fprintf(OUTPUT_STREAM, F_GREEN "%s" F_RESET "\n", cmd->b_name);
|
b_fprintf(OUTPUT_STREAM, F_GREEN "%s" F_RESET "\n", cmd->b_name);
|
||||||
|
|||||||
+7
-7
@@ -5,14 +5,14 @@
|
|||||||
#include <blue/core/btree.h>
|
#include <blue/core/btree.h>
|
||||||
#include <blue/core/queue.h>
|
#include <blue/core/queue.h>
|
||||||
|
|
||||||
#define F_RED "\033[91m"
|
#define F_RED "[bright,red]"
|
||||||
#define F_GREEN "\033[92m"
|
#define F_GREEN "[bright,green]"
|
||||||
#define F_YELLOW "\033[93m"
|
#define F_YELLOW "[bright,yellow]"
|
||||||
|
|
||||||
#define F_RED_BOLD "\033[1;91m"
|
#define F_RED_BOLD "[bright,bold,red]"
|
||||||
#define F_GREEN_BOLD "\033[1;92m"
|
#define F_GREEN_BOLD "[bright,bold,green]"
|
||||||
#define F_YELLOW_BOLD "\033[1;93m"
|
#define F_YELLOW_BOLD "[bright,bold,yellow]"
|
||||||
#define F_RESET "\033[0m"
|
#define F_RESET "[reset]"
|
||||||
|
|
||||||
enum cmd_string_flags {
|
enum cmd_string_flags {
|
||||||
CMD_STR_COLOUR = 0x01u,
|
CMD_STR_COLOUR = 0x01u,
|
||||||
|
|||||||
+1
-1
@@ -118,7 +118,7 @@ void z__b_get_option_description(struct b_command_option *opt, b_string *out)
|
|||||||
if (it.i > 0) {
|
if (it.i > 0) {
|
||||||
b_string_append_cstr(out, "; ");
|
b_string_append_cstr(out, "; ");
|
||||||
} else {
|
} else {
|
||||||
b_string_append_cstr(out, " [");
|
b_string_append_cstr(out, " [[");
|
||||||
close_bracket = true;
|
close_bracket = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user