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:
parent
b90b025af1
commit
5bb75bc745
Notes:
Lennart Poettering
2014-05-24 11:06:27 +08:00
Backport: bugfix
@ -4285,7 +4285,7 @@ static int show_all(
|
||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||
const UnitInfo *u;
|
||||
unsigned c;
|
||||
int r;
|
||||
int r, ret = 0;
|
||||
|
||||
r = get_unit_list(bus, NULL, NULL, &unit_infos, 0, &reply);
|
||||
if (r < 0)
|
||||
@ -4307,9 +4307,11 @@ static int show_all(
|
||||
r = show_one(verb, bus, p, show_properties, new_line, ellipsized);
|
||||
if (r < 0)
|
||||
return r;
|
||||
else if (r > 0 && ret == 0)
|
||||
ret = r;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
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)) {
|
||||
@ -4448,7 +4455,12 @@ static int show(sd_bus *bus, char **args) {
|
||||
if (!unit)
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user