diff options
author | Renato Botelho <renato@netgate.com> | 2016-03-16 15:15:42 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-03-16 16:19:53 -0300 |
commit | a948633c5c19e3ec8669f13103236258d72992d6 (patch) | |
tree | 1f59e7400bf8e6b7bf4491cfbcfb162ebfc15c6b | |
parent | 697b1e0795d9b71caa445ad91b71f8add6864e14 (diff) | |
download | pfsense-a948633c5c19e3ec8669f13103236258d72992d6.zip pfsense-a948633c5c19e3ec8669f13103236258d72992d6.tar.gz |
Add an option to define extra env vars to pkg_call() and pkg_exec()
-rw-r--r-- | src/etc/inc/pkg-utils.inc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/etc/inc/pkg-utils.inc b/src/etc/inc/pkg-utils.inc index 4aa8256..8cb3bfc 100644 --- a/src/etc/inc/pkg-utils.inc +++ b/src/etc/inc/pkg-utils.inc @@ -100,7 +100,7 @@ function pkg_update($force = false) { } /* return an array with necessary environment vars for pkg */ -function pkg_env() { +function pkg_env($extra_env = array()) { global $config, $g; $pkg_env_vars = array( @@ -115,11 +115,15 @@ function pkg_env() { $pkg_env_vars['PKG_CACHEDIR'] = '/root/var/cache/pkg'; } + foreach ($extra_env as $key => $value) { + $pkg_env_vars[$key] = $value; + } + return $pkg_env_vars; } /* Execute a pkg call */ -function pkg_call($params, $mute = false) { +function pkg_call($params, $mute = false, $extra_env = array()) { global $g, $config; if (empty($params)) { @@ -140,7 +144,7 @@ function pkg_call($params, $mute = false) { pkg_debug("pkg_call(): {$params}\n"); $process = proc_open("/usr/sbin/pkg {$params}", $descriptorspec, $pipes, - '/', pkg_env()); + '/', pkg_env($extra_env)); if (!is_resource($process)) { conf_mount_ro(); @@ -217,7 +221,7 @@ function pkg_call($params, $mute = false) { } /* Execute pkg with $params, fill stdout and stderr and return pkg rc */ -function pkg_exec($params, &$stdout, &$stderr) { +function pkg_exec($params, &$stdout, &$stderr, $extra_env = array()) { global $g, $config; if (empty($params)) { @@ -238,7 +242,7 @@ function pkg_exec($params, &$stdout, &$stderr) { pkg_debug("pkg_exec(): {$params}\n"); $process = proc_open("/usr/sbin/pkg {$params}", $descriptorspec, $pipes, - '/', pkg_env()); + '/', pkg_env($extra_env)); if (!is_resource($process)) { conf_mount_ro(); |