diff options
author | Lennart Poettering <lennart@poettering.net> | 2021-01-21 17:57:13 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2021-01-21 18:14:21 +0100 |
commit | 16a36b56163d1e3ab3354bd47e505b484b5a5f55 (patch) | |
tree | 165fa09c6172b7013672e9fd14743eadb24078e6 | |
parent | 896e678bea45e6aec9566dc378e29d150ce57820 (diff) | |
download | systemd-16a36b56163d1e3ab3354bd47e505b484b5a5f55.tar.gz |
sysext: port to table_print_with_pager()
This adds --no-legend as side-effect.
-rw-r--r-- | man/systemd-sysext.xml | 1 | ||||
-rw-r--r-- | src/sysext/sysext.c | 36 |
2 files changed, 18 insertions, 19 deletions
diff --git a/man/systemd-sysext.xml b/man/systemd-sysext.xml index e5f2e36899..8539983bcb 100644 --- a/man/systemd-sysext.xml +++ b/man/systemd-sysext.xml @@ -229,6 +229,7 @@ </varlistentry> <xi:include href="standard-options.xml" xpointer="no-pager" /> + <xi:include href="standard-options.xml" xpointer="no-legend" /> </variablelist> </refsect1> diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c index 590dfc9c20..81b3b29c08 100644 --- a/src/sysext/sysext.c +++ b/src/sysext/sysext.c @@ -35,6 +35,7 @@ static char **arg_hierarchies = NULL; /* "/usr" + "/opt" by default */ static char *arg_root = NULL; static JsonFormatFlags arg_json_format_flags = JSON_FORMAT_OFF; static PagerFlags arg_pager_flags = 0; +static bool arg_legend = true; static bool arg_force = false; STATIC_DESTRUCTOR_REGISTER(arg_hierarchies, strv_freep); @@ -226,12 +227,9 @@ static int verb_status(int argc, char **argv, void *userdata) { (void) table_set_sort(t, (size_t) 0, (size_t) -1); - if (arg_json_format_flags & (JSON_FORMAT_OFF|JSON_FORMAT_PRETTY|JSON_FORMAT_PRETTY_AUTO)) - (void) pager_open(arg_pager_flags); - - r = table_print_json(t, stdout, arg_json_format_flags); + r = table_print_with_pager(t, arg_json_format_flags, arg_pager_flags, arg_legend); if (r < 0) - return table_log_add_error(r); + return r; return ret; } @@ -860,14 +858,7 @@ static int verb_list(int argc, char **argv, void *userdata) { (void) table_set_sort(t, (size_t) 0, (size_t) -1); - if (arg_json_format_flags & (JSON_FORMAT_OFF|JSON_FORMAT_PRETTY|JSON_FORMAT_PRETTY_AUTO)) - (void) pager_open(arg_pager_flags); - - r = table_print_json(t, stdout, arg_json_format_flags); - if (r < 0) - return table_log_print_error(r); - - return 0; + return table_print_with_pager(t, arg_json_format_flags, arg_pager_flags, arg_legend); } static int verb_help(int argc, char **argv, void *userdata) { @@ -890,6 +881,7 @@ static int verb_help(int argc, char **argv, void *userdata) { " --version Show package version\n" "\n%3$sOptions:%4$s\n" " --no-pager Do not pipe output into a pager\n" + " --no-legend Do not show the headers and footers\n" " --root=PATH Operate relative to root path\n" " --json=pretty|short|off\n" " Generate JSON output\n" @@ -909,18 +901,20 @@ static int parse_argv(int argc, char *argv[]) { enum { ARG_VERSION = 0x100, ARG_NO_PAGER, + ARG_NO_LEGEND, ARG_ROOT, ARG_JSON, ARG_FORCE, }; static const struct option options[] = { - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, ARG_VERSION }, - { "no-pager", no_argument, NULL, ARG_NO_PAGER }, - { "root", required_argument, NULL, ARG_ROOT }, - { "json", required_argument, NULL, ARG_JSON }, - { "force", no_argument, NULL, ARG_FORCE }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, ARG_VERSION }, + { "no-pager", no_argument, NULL, ARG_NO_PAGER }, + { "no-legend", no_argument, NULL, ARG_NO_LEGEND }, + { "root", required_argument, NULL, ARG_ROOT }, + { "json", required_argument, NULL, ARG_JSON }, + { "force", no_argument, NULL, ARG_FORCE }, {} }; @@ -943,6 +937,10 @@ static int parse_argv(int argc, char *argv[]) { arg_pager_flags |= PAGER_DISABLE; break; + case ARG_NO_LEGEND: + arg_legend = false; + break; + case ARG_ROOT: r = parse_path_argument_and_warn(optarg, false, &arg_root); if (r < 0) |