mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
varlinkctl: add "-q" switch for suppressing varlinkctl output
This commit is contained in:
@@ -239,6 +239,17 @@
|
||||
</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" />
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user