mirror of
https://github.com/systemd/systemd.git
synced 2025-03-13 00:58:27 +03:00
systemctl: skip non-existent units in the 'cat' verb
When processing list of units (either provided manually or as a wildcard), let's skip units for which we don't have an on-disk counterpart, but note the -ENOENT error code and propagate it back to the user. Fixes: #14082
This commit is contained in:
parent
49d418d4ab
commit
a25457f5b7
@ -5937,7 +5937,7 @@ static int cat(int argc, char *argv[], void *userdata) {
|
||||
char **name;
|
||||
sd_bus *bus;
|
||||
bool first = true;
|
||||
int r;
|
||||
int r, rc = 0;
|
||||
|
||||
/* Include all units by default — i.e. continue as if the --all
|
||||
* option was used */
|
||||
@ -5982,8 +5982,12 @@ static int cat(int argc, char *argv[], void *userdata) {
|
||||
}
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0)
|
||||
return -ENOENT;
|
||||
if (r == 0) {
|
||||
/* Skip units which have no on-disk counterpart, but
|
||||
* propagate the error to the user */
|
||||
rc = -ENOENT;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (first)
|
||||
first = false;
|
||||
@ -6009,7 +6013,7 @@ static int cat(int argc, char *argv[], void *userdata) {
|
||||
return r;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int set_property(int argc, char *argv[], void *userdata) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user