mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-26 09:57:26 +03:00
nspawn: allow --setenv=FOO as equivalent to --setenv=FOO=$FOO
systemd-socket-activate has supported such a mode since 5e65c93a433447b15180249166f7b3944c3e6156. '--setenv=FOO=$FOO' is a fairly common use in scripts, and it's nicer to do this automatically without worrying about quoting and whatnot. https://github.com/systemd/mkosi/pull/765 added the same to 'mkosi --environment='.
This commit is contained in:
parent
a14af47e64
commit
0d2a017986
@ -527,14 +527,14 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-E <replaceable>NAME</replaceable>=<replaceable>VALUE</replaceable></option></term>
|
||||
<term><option>--setenv=<replaceable>NAME</replaceable>=<replaceable>VALUE</replaceable></option></term>
|
||||
<term><option>-E <replaceable>NAME</replaceable>[=<replaceable>VALUE</replaceable>]</option></term>
|
||||
<term><option>--setenv=<replaceable>NAME</replaceable>[=<replaceable>VALUE</replaceable>]</option></term>
|
||||
|
||||
<listitem><para>Specifies an environment variable assignment
|
||||
to pass to the init process in the container, in the format
|
||||
<literal>NAME=VALUE</literal>. This may be used to override
|
||||
the default variables or to set additional variables. This
|
||||
parameter may be used more than once.</para></listitem>
|
||||
<listitem><para>Specifies an environment variable to pass to the init process in the container. This
|
||||
may be used to override the default variables or to set additional variables. It may be used more
|
||||
than once to set multiple variables. When <literal>=</literal> and <replaceable>VALUE</replaceable>
|
||||
are omitted, the value of the variable with the same name in the program environment will be used.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -338,7 +338,7 @@ static int help(void) {
|
||||
" -a --as-pid2 Maintain a stub init as PID1, invoke binary as PID2\n"
|
||||
" -b --boot Boot up full system (i.e. invoke init)\n"
|
||||
" --chdir=PATH Set working directory in the container\n"
|
||||
" -E --setenv=NAME=VALUE Pass an environment variable to PID 1\n"
|
||||
" -E --setenv=NAME[=VALUE] Pass an environment variable to PID 1\n"
|
||||
" -u --user=USER Run the command under specified user or UID\n"
|
||||
" --kill-signal=SIGNAL Select signal to use for shutting down PID 1\n"
|
||||
" --notify-ready=BOOLEAN Receive notifications from the child init process\n\n"
|
||||
@ -1121,17 +1121,13 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
arg_settings_mask |= SETTING_CUSTOM_MOUNTS;
|
||||
break;
|
||||
|
||||
case 'E': {
|
||||
if (!env_assignment_is_valid(optarg))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Environment variable assignment '%s' is not valid.", optarg);
|
||||
r = strv_env_replace_strdup(&arg_setenv, optarg);
|
||||
case 'E':
|
||||
r = strv_env_replace_strdup_passthrough(&arg_setenv, optarg);
|
||||
if (r < 0)
|
||||
return r;
|
||||
return log_error_errno(r, "Cannot assign environment variable %s: %m", optarg);
|
||||
|
||||
arg_settings_mask |= SETTING_ENVIRONMENT;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'q':
|
||||
arg_quiet = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user