Skip to content

Commit 31b014d

Browse files
committed
CFE-4450: Allow passing environment variables to package managers
1 parent bbec246 commit 31b014d

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed

modules/packages/vendored/apt_get.mustache

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,17 @@ def package_arguments_builder(is_apt_install):
295295
elif line.startswith("options="):
296296
global apt_get_options
297297
option = line.split("=", 1)[1].rstrip()
298+
298299
if option:
299-
apt_get_options.append(option)
300+
if option.startswith("env:"):
301+
env_option = option.split(":", 1)[1]
302+
env_var = env_option.split("=", 1)
303+
if len(env_var) == 2:
304+
env_name = env_var[0]
305+
env_value = env_var[1]
306+
os.environ[env_name] = env_value
307+
else:
308+
apt_get_options.append(option)
300309

301310
if name:
302311
args.extend(one_package_argument(name, arch, version, is_apt_install))

modules/packages/vendored/yum.mustache

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,13 @@ def list_updates(online):
115115
yum_options.append(option)
116116
elif option.startswith("enablerepo=") or option.startswith("disablerepo="):
117117
yum_options.append("--" + option)
118+
elif option.startswith("env:"):
119+
env_option = option.split(":", 1)[1]
120+
env_var = env_option.split("=", 1)
121+
if len(env_var) == 2:
122+
env_name = env_var[0]
123+
env_value = env_var[1]
124+
os.environ[env_name] = env_value
118125

119126
online_flag = []
120127
if not online:
@@ -229,6 +236,13 @@ def package_arguments_builder(is_yum_install):
229236
yum_options.append(option)
230237
elif option.startswith("enablerepo=") or option.startswith("disablerepo="):
231238
yum_options.append("--" + option)
239+
elif option.startswith("env:"):
240+
env_option = option.split(":", 1)[1]
241+
env_var = env_option.split("=", 1)
242+
if len(env_var) == 2:
243+
env_name = env_var[0]
244+
env_value = env_var[1]
245+
os.environ[env_name] = env_value
232246
if line.startswith("Name="):
233247
if name:
234248
# Each new "Name=" triggers a new entry.

modules/packages/vendored/zypper.mustache

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,21 @@ def package_arguments_builder(is_zypper_install):
275275
elif line.startswith("Architecture="):
276276
arch = line.split("=", 1)[1].rstrip()
277277

278+
elif line.startswith("options="):
279+
global zypper_options
280+
option = line.split("=", 1)[1].rstrip()
281+
282+
if option:
283+
if option.startswith("env:"):
284+
env_option = option.split(":", 1)[1]
285+
env_var = env_option.split("=", 1)
286+
if len(env_var) == 2:
287+
env_name = env_var[0]
288+
env_value = env_var[1]
289+
os.environ[env_name] = env_value
290+
else:
291+
zypper_options.append(option)
292+
278293
if name:
279294
single_list, multi_list = one_package_argument(name, arch, version, is_zypper_install)
280295
single_cmd_args += single_list
@@ -405,6 +420,18 @@ def file_install():
405420
found = True
406421
cmd_line.append(line.split("=", 1)[1].rstrip())
407422

423+
elif line.startswith("options="):
424+
global zypper_options
425+
option = line.split("=", 1)[1].rstrip()
426+
if option:
427+
if option.startswith("env:"):
428+
env_option = option.split(":", 1)[1]
429+
env_var = env_option.split("=", 1)
430+
if len(env_var) == 2:
431+
env_name = env_var[0]
432+
env_value = env_var[1]
433+
os.environ[env_name] = env_value
434+
408435
if not found:
409436
return 0
410437

0 commit comments

Comments
 (0)