mirror of
https://github.com/systemd/systemd.git
synced 2026-08-12 22:17:19 +00:00
run: reject JSON output for trigger units
Reproducer:
unit=run-json-trigger-$(date +%s)
sudo systemd-run --json=short --unit="$unit" \
--on-active=30s \
/bin/true
Before, trigger mode accepted --json=short but printed only human-readable
"Running timer as unit" and "Will run service" lines. Reject the option
until trigger mode has structured output.
Follow-up for fe5a6c47af
This commit is contained in:
@@ -735,6 +735,10 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"--timer-property= has no effect without any other timer options.");
|
||||
|
||||
if (sd_json_format_enabled(arg_json_format_flags) && with_trigger)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"--json= is not compatible with path, socket or timer operations.");
|
||||
|
||||
if (arg_wait) {
|
||||
if (arg_no_block)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
|
||||
@@ -257,6 +257,7 @@ systemd-run --wait --machine=.host --pty true
|
||||
systemd-run --json=short true | jq . >/dev/null
|
||||
systemd-run --json=pretty true | jq . >/dev/null
|
||||
(! systemd-run --wait --pipe --json=short true)
|
||||
(! systemd-run --json=short --on-active=30s true)
|
||||
(! SHELL=/bin/false systemd-run --quiet --shell)
|
||||
|
||||
(! systemd-run)
|
||||
|
||||
Reference in New Issue
Block a user