1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 08:26:52 +03:00

systemctl: return an error code is status fails

This got lost in the refactoring in f74294c1da.

Also make sure that the return code corresponds to the *first* failure,
not the last.

https://lists.fedoraproject.org/pipermail/devel/2014-May/199080.html
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-05-10 03:44:25 +02:00
parent b90b025af1
commit 5bb75bc745
Notes: Lennart Poettering 2014-05-24 11:06:27 +08:00
Backport: bugfix

View File

@ -4285,7 +4285,7 @@ static int show_all(
_cleanup_free_ UnitInfo *unit_infos = NULL; _cleanup_free_ UnitInfo *unit_infos = NULL;
const UnitInfo *u; const UnitInfo *u;
unsigned c; unsigned c;
int r; int r, ret = 0;
r = get_unit_list(bus, NULL, NULL, &unit_infos, 0, &reply); r = get_unit_list(bus, NULL, NULL, &unit_infos, 0, &reply);
if (r < 0) if (r < 0)
@ -4307,9 +4307,11 @@ static int show_all(
r = show_one(verb, bus, p, show_properties, new_line, ellipsized); r = show_one(verb, bus, p, show_properties, new_line, ellipsized);
if (r < 0) if (r < 0)
return r; return r;
else if (r > 0 && ret == 0)
ret = r;
} }
return 0; return ret;
} }
static int show_system_status(sd_bus *bus) { static int show_system_status(sd_bus *bus) {
@ -4431,7 +4433,12 @@ static int show(sd_bus *bus, char **args) {
} }
} }
show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized); r = show_one(args[0], bus, unit, show_properties,
&new_line, &ellipsized);
if (r < 0)
return r;
else if (r > 0 && ret == 0)
ret = r;
} }
if (!strv_isempty(patterns)) { if (!strv_isempty(patterns)) {
@ -4448,7 +4455,12 @@ static int show(sd_bus *bus, char **args) {
if (!unit) if (!unit)
return log_oom(); return log_oom();
show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized); r = show_one(args[0], bus, unit, show_properties,
&new_line, &ellipsized);
if (r < 0)
return r;
else if (r > 0 && ret == 0)
ret = r;
} }
} }
} }