summaryrefslogtreecommitdiff
path: root/src/run
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-08-10 17:25:47 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-08-11 09:34:45 +0200
commit0337b3d51c848edb3c0532f58416be3a87ae70b7 (patch)
treec265ed39a0706250a37755864a683317ab7c0a12 /src/run
parent4bbafcc359bf12f19f1ec232a2412195183d4ad5 (diff)
downloadsystemd-0337b3d51c848edb3c0532f58416be3a87ae70b7.tar.gz
run: allow --setenv=FOO
Diffstat (limited to 'src/run')
-rw-r--r--src/run/run.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/run/run.c b/src/run/run.c
index 993f1bc4f4..fb38571228 100644
--- a/src/run/run.c
+++ b/src/run/run.c
@@ -111,7 +111,7 @@ static int help(void) {
" --nice=NICE Nice level\n"
" --working-directory=PATH Set working directory\n"
" -d --same-dir Inherit working directory from caller\n"
- " -E --setenv=NAME=VALUE Set environment\n"
+ " -E --setenv=NAME[=VALUE] Set environment variable\n"
" -t --pty Run service on pseudo TTY as STDIN/STDOUT/\n"
" STDERR\n"
" -P --pipe Pass STDIN/STDOUT/STDERR directly to service\n"
@@ -322,8 +322,9 @@ static int parse_argv(int argc, char *argv[]) {
break;
case 'E':
- if (strv_extend(&arg_environment, optarg) < 0)
- return log_oom();
+ r = strv_env_replace_strdup_passthrough(&arg_environment, optarg);
+ if (r < 0)
+ return log_error_errno(r, "Cannot assign environment variable %s: %m", optarg);
break;