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-05-30 21:11:44 +02:00
committed by Zbigniew Jędrzejewski-Szmek
parent cfa0ce187f
commit 4eb5312079
+5
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.");