mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
systemctl: add --state=help
This mirrors --type=help and simplifies completion scripts. The array of states is dense, so the is no need to check if the string is null.
This commit is contained in:
parent
978c8b6347
commit
e16972e626
@ -101,10 +101,14 @@
|
||||
<term><option>--state=</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>The argument should be a comma-separated list of unit
|
||||
LOAD, SUB, or ACTIVE states. When listing units, show only
|
||||
those in specified states. Use <option>--state=failed</option>
|
||||
to show only failed units.</para>
|
||||
<para>The argument should be a comma-separated list of unit
|
||||
LOAD, SUB, or ACTIVE states. When listing units, show only
|
||||
those in specified states. Use <option>--state=failed</option>
|
||||
to show only failed units.</para>
|
||||
|
||||
<para>As a special case, if one of the arguments is
|
||||
<option>help</option>, a list of allowed values will be
|
||||
printed and the program will exit.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -6314,15 +6314,25 @@ static void runlevel_help(void) {
|
||||
|
||||
static void help_types(void) {
|
||||
int i;
|
||||
const char *t;
|
||||
|
||||
if (!arg_no_legend)
|
||||
puts("Available unit types:");
|
||||
for (i = 0; i < _UNIT_TYPE_MAX; i++) {
|
||||
t = unit_type_to_string(i);
|
||||
if (t)
|
||||
puts(t);
|
||||
}
|
||||
for (i = 0; i < _UNIT_TYPE_MAX; i++)
|
||||
puts(unit_type_to_string(i));
|
||||
}
|
||||
|
||||
static void help_states(void) {
|
||||
int i;
|
||||
|
||||
if (!arg_no_legend)
|
||||
puts("Available unit load states:");
|
||||
for (i = 0; i < _UNIT_LOAD_STATE_MAX; i++)
|
||||
puts(unit_load_state_to_string(i));
|
||||
|
||||
if (!arg_no_legend)
|
||||
puts("\nAvailable unit active states:");
|
||||
for (i = 0; i < _UNIT_ACTIVE_STATE_MAX; i++)
|
||||
puts(unit_active_state_to_string(i));
|
||||
}
|
||||
|
||||
static int systemctl_parse_argv(int argc, char *argv[]) {
|
||||
@ -6660,6 +6670,11 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
|
||||
if (!s)
|
||||
return log_oom();
|
||||
|
||||
if (streq(s, "help")) {
|
||||
help_states();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strv_consume(&arg_states, s) < 0)
|
||||
return log_oom();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user