systemctl: process all units matched by a glob in the cat verb by default

Originally, `systemctl cat` would match only active units, for example:

$ systemctl cat sshd.service

would cat the sshd.service unit file even if the service was inactive.
However:

$ systemctl cat ssh*

would show it only if it was active.

Let's unify the behavior and cat all unit files regardless of a state,
if no state was given explicitly to filter.
This commit is contained in:
Frantisek Sumsal 2019-04-11 14:34:32 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent cfa0ce187f
commit 4eb5312079

View file

@ -5865,6 +5865,11 @@ static int cat(int argc, char *argv[], void *userdata) {
bool first = true;
int r;
/* Include all units by default - i.e. continue as if the --all
* option was used */
if (strv_isempty(arg_states))
arg_all = true;
if (arg_transport != BUS_TRANSPORT_LOCAL)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot remotely cat units.");