systemctl: exit with 1 if no unit files found

Add a simple check on the number of unit files that were found: return
`-ENOENT` when none is found from the function and thus `systemctl`
consequently exits with `1` (`EXIT_FAILURE`) if none were found.

Verification:
```bash
root@image:~# systemctl list-unit-files dbus-nonexistant.service; echo
$?
UNIT FILE STATE VENDOR PRESET

0 unit files listed.
1
root@image:~# systemctl list-unit-files dbus.service; echo $?
UNIT FILE    STATE  VENDOR PRESET
dbus.service static enabled

1 unit files listed.
0
```

Fixes #15082.
This commit is contained in:
Giedrius Statkevičius 2020-03-22 15:49:55 +02:00
parent 1b43e24602
commit eeb1542b5e

View file

@ -1659,6 +1659,9 @@ static int list_unit_files(int argc, char *argv[], void *userdata) {
for (unit = units; unit < units + c; unit++)
free(unit->path);
if (c == 0)
return -ENOENT;
return 0;
}