From: Frantisek Sumsal Date: Thu, 11 Apr 2019 12:34:32 +0000 (+0200) Subject: systemctl: process all units matched by a glob in the cat verb by default X-Git-Tag: v243-rc1~336 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4eb5312079962fceb22c1b730087d724d02fee8b;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 0574a9f4ceb..cca15083097 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -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.");