From: Zbigniew Jędrzejewski-Szmek Date: Thu, 4 Oct 2012 11:01:10 +0000 (+0000) Subject: systemctl: do not print header if no units listed X-Git-Tag: v195~166 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=ad94ad63e31e4822d1cf5b0908be0f3111930ff9 systemctl: do not print header if no units listed --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index a4bec4965..6a42fea5b 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -372,15 +372,6 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) { } else id_len = max_id_len; - if (!arg_no_legend) { - printf("%-*s %-6s %-*s %-*s %-*s ", id_len, "UNIT", "LOAD", - active_len, "ACTIVE", sub_len, "SUB", job_len, "JOB"); - if (!arg_full && arg_no_pager) - printf("%.*s\n", desc_len, "DESCRIPTION"); - else - printf("%s\n", "DESCRIPTION"); - } - for (u = unit_infos; u < unit_infos + c; u++) { char *e; const char *on_loaded, *off_loaded; @@ -389,6 +380,15 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) { if (!output_show_unit(u)) continue; + if (!n_shown && !arg_no_legend) { + printf("%-*s %-6s %-*s %-*s %-*s ", id_len, "UNIT", "LOAD", + active_len, "ACTIVE", sub_len, "SUB", job_len, "JOB"); + if (!arg_full && arg_no_pager) + printf("%.*s\n", desc_len, "DESCRIPTION"); + else + printf("%s\n", "DESCRIPTION"); + } + n_shown++; if (streq(u->load_state, "error")) { @@ -420,16 +420,17 @@ static void output_units_list(const struct unit_info *unit_infos, unsigned c) { } if (!arg_no_legend) { - printf("\nLOAD = Reflects whether the unit definition was properly loaded.\n" - "ACTIVE = The high-level unit activation state, i.e. generalization of SUB.\n" - "SUB = The low-level unit activation state, values depend on unit type.\n" - "JOB = Pending job for the unit.\n"); + if (n_shown) + printf("\nLOAD = Reflects whether the unit definition was properly loaded.\n" + "ACTIVE = The high-level unit activation state, i.e. generalization of SUB.\n" + "SUB = The low-level unit activation state, values depend on unit type.\n" + "JOB = Pending job for the unit.\n\n"); if (arg_all) - printf("\n%u loaded units listed.\n" + printf("%u loaded units listed.\n" "To show all installed unit files use 'systemctl list-unit-files'.\n", n_shown); else - printf("\n%u loaded units listed. Pass --all to see loaded but inactive units, too.\n" + printf("%u loaded units listed. Pass --all to see loaded but inactive units, too.\n" "To show all installed unit files use 'systemctl list-unit-files'.\n", n_shown); } }