]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
varlinkctl: add "-q" switch for suppressing varlinkctl output
authorLennart Poettering <lennart@poettering.net>
Wed, 8 May 2024 08:40:10 +0000 (10:40 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 13 Jun 2024 09:30:52 +0000 (11:30 +0200)
man/varlinkctl.xml
src/varlinkctl/varlinkctl.c

index 0dedc1e4db5e05e7e8db6e3ada53c77f8e051cec..f21e513cb0fcf16cf1373c4ce2b445898864c0b1 100644 (file)
         </listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><option>--quiet</option></term>
+        <term><option>-q</option></term>
+
+        <listitem>
+          <para>Suppress output of method call replies.</para>
+
+        <xi:include href="version-info.xml" xpointer="v257"/>
+        </listitem>
+      </varlistentry>
+
       <xi:include href="standard-options.xml" xpointer="no-pager" />
       <xi:include href="standard-options.xml" xpointer="help" />
       <xi:include href="standard-options.xml" xpointer="version" />
index 739770d2961ebe81ef43f473fca1ec2d5acfd34f..676fb930548537f836b5e93073a94b4800363d01 100644 (file)
@@ -21,6 +21,7 @@ static sd_json_format_flags_t arg_json_format_flags = SD_JSON_FORMAT_OFF;
 static PagerFlags arg_pager_flags = 0;
 static VarlinkMethodFlags arg_method_flags = 0;
 static bool arg_collect = false;
+static bool arg_quiet = false;
 
 static int help(void) {
         _cleanup_free_ char *link = NULL;
@@ -56,6 +57,7 @@ static int help(void) {
                "     --oneway            Do not request response\n"
                "     --json=MODE         Output as JSON\n"
                "  -j                     Same as --json=pretty on tty, --json=short otherwise\n"
+               "  -q --quiet             Do not output method reply\n"
                "\nSee the %2$s for details.\n",
                program_invocation_short_name,
                link,
@@ -90,6 +92,7 @@ static int parse_argv(int argc, char *argv[]) {
                 { "oneway",   no_argument,       NULL, ARG_ONEWAY   },
                 { "json",     required_argument, NULL, ARG_JSON     },
                 { "collect",  no_argument,       NULL, ARG_COLLECT  },
+                { "quiet",    no_argument,       NULL, 'q'          },
                 {},
         };
 
@@ -98,7 +101,7 @@ static int parse_argv(int argc, char *argv[]) {
         assert(argc >= 0);
         assert(argv);
 
-        while ((c = getopt_long(argc, argv, "hj", options, NULL)) >= 0)
+        while ((c = getopt_long(argc, argv, "hjq", options, NULL)) >= 0)
 
                 switch (c) {
 
@@ -135,6 +138,10 @@ static int parse_argv(int argc, char *argv[]) {
                         arg_json_format_flags = SD_JSON_FORMAT_PRETTY_AUTO|SD_JSON_FORMAT_COLOR_AUTO;
                         break;
 
+                case 'q':
+                        arg_quiet = true;
+                        break;
+
                 case '?':
                         return -EINVAL;
 
@@ -435,7 +442,9 @@ static int reply_callback(
         } else
                 r = 0;
 
-        sd_json_variant_dump(parameters, arg_json_format_flags, stdout, NULL);
+        if (!arg_quiet)
+                sd_json_variant_dump(parameters, arg_json_format_flags, stdout, NULL);
+
         return r;
 }
 
@@ -490,6 +499,9 @@ static int verb_call(int argc, char *argv[], void *userdata) {
                 } else
                         r = 0;
 
+                if (arg_quiet)
+                        return r;
+
                 pager_open(arg_pager_flags);
                 sd_json_variant_dump(reply, arg_json_format_flags, stdout, NULL);
                 return r;
@@ -552,6 +564,9 @@ static int verb_call(int argc, char *argv[], void *userdata) {
                 } else
                         r = 0;
 
+                if (arg_quiet)
+                        return r;
+
                 pager_open(arg_pager_flags);
 
                 sd_json_variant_dump(reply, arg_json_format_flags, stdout, NULL);
@@ -598,6 +613,9 @@ static int verb_validate_idl(int argc, char *argv[], void *userdata) {
         if (r < 0)
                 return log_error_errno(r, "Failed to check interface for consistency: %m");
 
+        if (arg_quiet)
+                return 0;
+
         pager_open(arg_pager_flags);
 
         r = varlink_idl_dump(stdout, /* use_colors= */ -1, vi);