]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udevadm info: implement --no-pager
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 22 Jun 2022 12:26:55 +0000 (14:26 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 22 Jun 2022 12:31:42 +0000 (14:31 +0200)
man/udevadm.xml
src/udev/udevadm-info.c

index 3a9b133d304694fbb93d2599187a124bea56c8e1..ba80e623829c8d4bec7e205b744d23559e3e62d5 100644 (file)
         </varlistentry>
 
         <xi:include href="standard-options.xml" xpointer="help" />
+        <xi:include href="standard-options.xml" xpointer="no-pager" />
       </variablelist>
 
       <para>The generated output shows the current device database entry in a terse format. Each line shown
index d76dda95f1682b3a4058da26ff7f0bdcc16cc8b6..b9af7769dad172da564cce1b5d0b477c46de1609 100644 (file)
@@ -51,6 +51,7 @@ static bool arg_export = false;
 static bool arg_value = false;
 static const char *arg_export_prefix = NULL;
 static usec_t arg_wait_for_initialization_timeout = 0;
+PagerFlags arg_pager_flags = 0;
 
 /* Put a limit on --tree descent level to not exhaust our stack */
 #define TREE_DEPTH_MAX 64
@@ -496,7 +497,8 @@ static int help(void) {
                "  -e --export-db              Export the content of the udev database\n"
                "  -c --cleanup-db             Clean up the udev database\n"
                "  -w --wait-for-initialization[=SECONDS]\n"
-               "                              Wait for device to be initialized\n",
+               "                              Wait for device to be initialized\n"
+               "     --no-pager               Do not pipe output into a pager\n",
                program_invocation_short_name);
 
         return 0;
@@ -667,6 +669,7 @@ int info_main(int argc, char *argv[], void *userdata) {
         enum {
                 ARG_PROPERTY = 0x100,
                 ARG_VALUE,
+                ARG_NO_PAGER,
         };
 
         static const struct option options[] = {
@@ -686,6 +689,7 @@ int info_main(int argc, char *argv[], void *userdata) {
                 { "value",                   no_argument,       NULL, ARG_VALUE    },
                 { "version",                 no_argument,       NULL, 'V'          },
                 { "wait-for-initialization", optional_argument, NULL, 'w'          },
+                { "no-pager",                no_argument,       NULL, ARG_NO_PAGER },
                 {}
         };
 
@@ -779,6 +783,9 @@ int info_main(int argc, char *argv[], void *userdata) {
                         return print_version();
                 case 'h':
                         return help();
+                case ARG_NO_PAGER:
+                        arg_pager_flags |= PAGER_DISABLE;
+                        break;
                 case '?':
                         return -EINVAL;
                 default:
@@ -810,7 +817,7 @@ int info_main(int argc, char *argv[], void *userdata) {
 
         if (strv_isempty(devices)) {
                 assert(action == ACTION_TREE);
-                pager_open(0);
+                pager_open(arg_pager_flags);
                 return print_tree(NULL);
         }