]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
repart: port to table_print_with_pager()
authorLennart Poettering <lennart@poettering.net>
Thu, 21 Jan 2021 16:40:02 +0000 (17:40 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 21 Jan 2021 17:14:21 +0000 (18:14 +0100)
This adds support for showing a pager, turning of the legend, like in
the other tools.

man/systemd-repart.xml
src/partition/repart.c

index 858b5be66d748d29d070d5f78349bdf61601a45a..ee48dd9c96b14c47fb1012041e66166f436a0802 100644 (file)
 
       <xi:include href="standard-options.xml" xpointer="help" />
       <xi:include href="standard-options.xml" xpointer="version" />
+      <xi:include href="standard-options.xml" xpointer="no-pager" />
+      <xi:include href="standard-options.xml" xpointer="no-legend" />
     </variablelist>
   </refsect1>
 
index d98051d1349094657820d19866aa9b93e542e8eb..3de7a052dfece39129d8c0fdaca3e10742cd8176 100644 (file)
@@ -107,6 +107,8 @@ static int arg_pretty = -1;
 static uint64_t arg_size = UINT64_MAX;
 static bool arg_size_auto = false;
 static JsonFormatFlags arg_json_format_flags = JSON_FORMAT_OFF;
+static PagerFlags arg_pager_flags = 0;
+static bool arg_legend = true;
 static void *arg_key = NULL;
 static size_t arg_key_size = 0;
 static char *arg_tpm2_device = NULL;
@@ -1918,11 +1920,7 @@ static int context_dump_partitions(Context *context, const char *node) {
                         return table_log_add_error(r);
         }
 
-        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 void context_bar_char_process_partition(
@@ -3479,6 +3477,8 @@ static int help(void) {
                "\n%sGrow and add partitions to partition table.%s\n\n"
                "  -h --help               Show this help\n"
                "     --version            Show package version\n"
+               "     --no-pager           Do not pipe output into a pager\n"
+               "     --no-legend          Do not show the headers and footers\n"
                "     --dry-run=BOOL       Whether to run dry-run operation\n"
                "     --empty=MODE         One of refuse, allow, require, force, create; controls\n"
                "                          how to handle empty disks lacking partition tables\n"
@@ -3510,6 +3510,8 @@ static int parse_argv(int argc, char *argv[]) {
 
         enum {
                 ARG_VERSION = 0x100,
+                ARG_NO_PAGER,
+                ARG_NO_LEGEND,
                 ARG_DRY_RUN,
                 ARG_EMPTY,
                 ARG_DISCARD,
@@ -3529,6 +3531,8 @@ static int parse_argv(int argc, char *argv[]) {
         static const struct option options[] = {
                 { "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         },
                 { "dry-run",           required_argument, NULL, ARG_DRY_RUN           },
                 { "empty",             required_argument, NULL, ARG_EMPTY             },
                 { "discard",           required_argument, NULL, ARG_DISCARD           },
@@ -3561,6 +3565,14 @@ static int parse_argv(int argc, char *argv[]) {
                 case ARG_VERSION:
                         return version();
 
+                case ARG_NO_PAGER:
+                        arg_pager_flags |= PAGER_DISABLE;
+                        break;
+
+                case ARG_NO_LEGEND:
+                        arg_legend = false;
+                        break;
+
                 case ARG_DRY_RUN:
                         r = parse_boolean(optarg);
                         if (r < 0)