From: Alan Jenkins Date: Tue, 4 Dec 2018 17:31:51 +0000 (+0000) Subject: systemctl: do not suggest passing --all if the user passed --state= X-Git-Tag: v243-rc1~123 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8eb0cafeb0aa6687e02f45e92e60fdbad7c485c0;p=thirdparty%2Fsystemd.git systemctl: do not suggest passing --all if the user passed --state= "systemctl --failed" suggested I pass "--all" to see units in the inactive state as well. I thought this was not very useful. If you explicitly asked for units in a specific state, then you already know you have narrowed it down. And if you ran "systemctl --state=inactive", it is even more strange to see this message. @keszybz suggests we probably don't want to suggest "list-unit-files" either :-). Let's only suggest that if the user passed "--state=inactive". Finally, this means the output for "systemctl --failed" could be just "0 loaded units listed". In this case, we don't need any highlight on that text, to distinguish it from the hint. This matches "list-unit-files". This also means we happen to avoid using red highlight, when there are zero failed units, as if that itself was a failure. @kesbyz pointed out that old behaviour was a bit weird. --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 52e3416cab7..0305f611941 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -557,14 +557,16 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) { off = ansi_normal(); } - if (arg_all) + if (arg_all || strv_contains(arg_states, "inactive")) printf("%s%u loaded units listed.%s\n" "To show all installed unit files use 'systemctl list-unit-files'.\n", on, n_shown, off); - else + else if (!arg_states) printf("%s%u loaded units listed.%s Pass --all to see loaded but inactive units, too.\n" "To show all installed unit files use 'systemctl list-unit-files'.\n", on, n_shown, off); + else + printf("%u loaded units listed.\n", n_shown); } return 0;