mirror of
https://github.com/systemd/systemd.git
synced 2024-11-23 18:23:32 +08:00
systemctl: accept -p more than once
This commit is contained in:
parent
7a58bfa4ae
commit
ea4a240dc2
2
fixme
2
fixme
@ -53,6 +53,8 @@
|
||||
|
||||
* io priority during initialization
|
||||
|
||||
* if a service fails too often, make the service enter maintainence mode, and the socket, too.
|
||||
|
||||
External:
|
||||
|
||||
* default.target must be %ghosted...
|
||||
|
@ -100,7 +100,10 @@
|
||||
not specified all set properties are
|
||||
shown. The argument should be a
|
||||
property name, such as
|
||||
<literal>MainPID</literal>.</para></listitem>
|
||||
<literal>MainPID</literal>. If
|
||||
specified more than once all
|
||||
properties with the specified names
|
||||
are shown.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -47,7 +47,7 @@
|
||||
#include "list.h"
|
||||
|
||||
static const char *arg_type = NULL;
|
||||
static const char *arg_property = NULL;
|
||||
static char **arg_property = NULL;
|
||||
static bool arg_all = false;
|
||||
static bool arg_fail = false;
|
||||
static bool arg_session = false;
|
||||
@ -1702,7 +1702,7 @@ static int print_property(const char *name, DBusMessageIter *iter) {
|
||||
/* This is a low-level property printer, see
|
||||
* print_status_info() for the nicer output */
|
||||
|
||||
if (arg_property && !streq(name, arg_property))
|
||||
if (arg_property && !strv_find(arg_property, name))
|
||||
return 0;
|
||||
|
||||
switch (dbus_message_iter_get_arg_type(iter)) {
|
||||
@ -3089,14 +3089,21 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
|
||||
arg_type = optarg;
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
arg_property = optarg;
|
||||
case 'p': {
|
||||
char **l;
|
||||
|
||||
if (!(l = strv_append(arg_property, optarg)))
|
||||
return -ENOMEM;
|
||||
|
||||
strv_free(arg_property);
|
||||
arg_property = l;
|
||||
|
||||
/* If the user asked for a particular
|
||||
* property, show it to him, even if it is
|
||||
* empty. */
|
||||
arg_all = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'a':
|
||||
arg_all = true;
|
||||
@ -3927,5 +3934,7 @@ finish:
|
||||
|
||||
dbus_shutdown();
|
||||
|
||||
strv_free(arg_property);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user