systemctl: suppress errors with "show" for nonexistent units and properties
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 25 Sep 2016 00:58:04 +0000 (20:58 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 25 Sep 2016 01:09:39 +0000 (21:09 -0400)
commitbd5b9f0a12dd9c1947b11534e99c395ddf44caa9
treebdb1430808ee05e4f5ce6ef56459bcf8630afe76
parent1cf03a4f8e5de53ca1ecc8a6dc64cb32ab8de536
systemctl: suppress errors with "show" for nonexistent units and properties

Show is documented to be program-parseable, and printing the warning about
about a non-existent unit, while useful for humans, broke a lot of scripts.
Restore previous behaviour of returning success and printing empty or useless
stuff for units which do not exist, and printing empty values for properties
which do not exists.

With SYSTEMD_LOG_LEVEL=debug, hints are printed, but the return value is
still 0.

This undoes parts of e33a06a and 3dced37b7 and fixes #3856.

We might consider adding an explicit switch to fail on missing units/properties
(e.g. --ensure-exists or similar), and make -P foobar equivalent to
--ensure-exists --property=foobar.
src/systemctl/systemctl.c