diff --git a/libioc/Pkg.py b/libioc/Pkg.py index 2135e6ec..0fadcc35 100644 --- a/libioc/Pkg.py +++ b/libioc/Pkg.py @@ -38,6 +38,7 @@ import typing import math import os.path +import os import re import libzfs @@ -142,7 +143,7 @@ def _update_host_repo(self, release_major_version: int) -> None: "--repository", self._get_repo_name(release_major_version) ], logger=self.logger, - env=dict( + env=self.__mixin_env(dict( ABI=self.__get_abi_string(release_major_version), SIGNATURE_TYPE="fingerprints", IGNORE_OSVERSION="yes" @@ -152,6 +153,14 @@ def _update_host_repo(self, release_major_version: int) -> None: def __get_abi_string(self, release_major_version: int) -> str: return f"FreeBSD:{release_major_version}:{self.host.processor}" + @staticmethod + def __mixin_env(env: typing.Dict[str, str]) -> typing.Dict[str, str]: + env_clone_keys = ["http_proxy"] + for key in os.environ: + if key.lower() in env_clone_keys: + env[key.lower()] = os.environ[key] + return env + def _mirror_packages( self, packages: typing.List[str], @@ -166,10 +175,10 @@ def _mirror_packages( "--repository", self._get_repo_name(release_major_version) ] + packages, logger=self.logger, - env=dict( + env=self.__mixin_env(dict( ABI=self.__get_abi_string(release_major_version), SIGNATURE_TYPE="fingerprints" - ) + )) ) if (stderr is not None) and (len(stderr) > 0): @@ -186,11 +195,11 @@ def _build_mirror_index(self, release_major_version: int) -> None: "repo", cache_ds.mountpoint ], - env=dict( + env=self.__mixin_env(dict( ABI=self.__get_abi_string(release_major_version), SIGNATURE_TYPE="fingerprints", FINGERPRINTS="/usr/share/keys/pkg" - ), + )), logger=self.logger )