From 4eb5312079962fceb22c1b730087d724d02fee8b Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Thu, 11 Apr 2019 14:34:32 +0200 Subject: [PATCH] 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. --- src/systemctl/systemctl.c | 5 +++++ 1 file changed, 5 insertions(+) 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."); -- 2.47.3