diff --git a/man/machinectl.xml b/man/machinectl.xml index 319942207b..3964dc0580 100644 --- a/man/machinectl.xml +++ b/man/machinectl.xml @@ -553,6 +553,17 @@ + + + + When printing properties with show, only print the value, + and skip the property name and =. + + + + + + @@ -570,15 +581,6 @@ - - - - When printing properties with show, only print the value, - and skip the property name and =. - - - - diff --git a/man/standard-options.xml b/man/standard-options.xml index 87058ad657..aaafa98bb7 100644 --- a/man/standard-options.xml +++ b/man/standard-options.xml @@ -135,4 +135,13 @@ + + + + + Equivalent to , i.e. shows the value of the + property without the property name or =. Note that using once + will also affect all properties listed with /. + + diff --git a/man/systemctl.xml b/man/systemctl.xml index 98844783b0..a8c12b2f35 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -1944,11 +1944,7 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err - Equivalent to , i.e. shows the - value of the property without the property name or =. Note that using - once will also affect all properties listed with - /. - + diff --git a/man/timedatectl.xml b/man/timedatectl.xml index 5e6a242fc1..ece8833295 100644 --- a/man/timedatectl.xml +++ b/man/timedatectl.xml @@ -273,6 +273,15 @@ + + + + + + + + + diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index 97dceaaf16..bab3719a49 100644 --- a/src/machine/machinectl.c +++ b/src/machine/machinectl.c @@ -2058,9 +2058,10 @@ static int help(int argc, char *argv[], void *userdata) { " -H --host=[USER@]HOST Operate on remote host\n" " -M --machine=CONTAINER Operate on local container\n" " -p --property=NAME Show only properties by this name\n" + " --value When showing properties, only print the value\n" + " -P NAME Equivalent to --value --property=NAME\n" " -q --quiet Suppress output\n" " -a --all Show all properties, including empty ones\n" - " --value When showing properties, only print the value\n" " -l --full Do not ellipsize output\n" " --kill-whom=WHOM Whom to send signal to\n" " -s --signal=SIGNAL Which signal to send\n" @@ -2115,8 +2116,8 @@ static int parse_argv(int argc, char *argv[]) { { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, ARG_VERSION }, { "property", required_argument, NULL, 'p' }, - { "all", no_argument, NULL, 'a' }, { "value", no_argument, NULL, ARG_VALUE }, + { "all", no_argument, NULL, 'a' }, { "full", no_argument, NULL, 'l' }, { "no-pager", no_argument, NULL, ARG_NO_PAGER }, { "no-legend", no_argument, NULL, ARG_NO_LEGEND }, @@ -2152,7 +2153,7 @@ static int parse_argv(int argc, char *argv[]) { optind = 0; for (;;) { - static const char option_string[] = "-hp:als:H:M:qn:o:E:V"; + static const char option_string[] = "-hp:P:als:H:M:qn:o:E:V"; c = getopt_long(argc, argv, option_string + reorder, options, NULL); if (c < 0) @@ -2213,14 +2214,20 @@ static int parse_argv(int argc, char *argv[]) { return version(); case 'p': + case 'P': r = strv_extend(&arg_property, optarg); if (r < 0) return log_oom(); - /* If the user asked for a particular - * property, show it to them, even if it is - * empty. */ + /* If the user asked for a particular property, show it to them, even if empty. */ SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_SHOW_EMPTY, true); + + if (c == 'p') + break; + _fallthrough_; + + case ARG_VALUE: + SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_ONLY_VALUE, true); break; case 'a': @@ -2228,10 +2235,6 @@ static int parse_argv(int argc, char *argv[]) { arg_all = true; break; - case ARG_VALUE: - SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_ONLY_VALUE, true); - break; - case 'l': arg_full = true; break; diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 418faa5054..46ec6b31bc 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -888,6 +888,7 @@ static int help(void) { " -p --property=NAME Show only properties by this name\n" " -a --all Show all properties, including empty ones\n" " --value When showing properties, only print the value\n" + " -P NAME Equivalent to --value --property=NAME\n" "\nSee the %s for details.\n", program_invocation_short_name, ansi_highlight(), @@ -902,7 +903,6 @@ static int verb_help(int argc, char **argv, void *userdata) { } static int parse_argv(int argc, char *argv[]) { - enum { ARG_VERSION = 0x100, ARG_NO_PAGER, @@ -922,8 +922,8 @@ static int parse_argv(int argc, char *argv[]) { { "adjust-system-clock", no_argument, NULL, ARG_ADJUST_SYSTEM_CLOCK }, { "monitor", no_argument, NULL, ARG_MONITOR }, { "property", required_argument, NULL, 'p' }, - { "all", no_argument, NULL, 'a' }, { "value", no_argument, NULL, ARG_VALUE }, + { "all", no_argument, NULL, 'a' }, {} }; @@ -932,8 +932,7 @@ static int parse_argv(int argc, char *argv[]) { assert(argc >= 0); assert(argv); - while ((c = getopt_long(argc, argv, "hH:M:p:a", options, NULL)) >= 0) - + while ((c = getopt_long(argc, argv, "hH:M:p:P:a", options, NULL)) >= 0) switch (c) { case 'h': @@ -968,26 +967,27 @@ static int parse_argv(int argc, char *argv[]) { arg_monitor = true; break; - case 'p': { + case 'p': + case 'P': r = strv_extend(&arg_property, optarg); if (r < 0) return log_oom(); - /* If the user asked for a particular - * property, show it to them, even if it is - * empty. */ + /* If the user asked for a particular property, show it to them, even if empty. */ SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_SHOW_EMPTY, true); - break; - } - case 'a': - SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_SHOW_EMPTY, true); - break; + if (c == 'p') + break; + _fallthrough_; case ARG_VALUE: SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_ONLY_VALUE, true); break; + case 'a': + SET_FLAG(arg_print_flags, BUS_PRINT_PROPERTY_SHOW_EMPTY, true); + break; + case '?': return -EINVAL;