summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-01-28 08:39:13 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-01-28 08:39:13 +0100
commit2a793b875f2327a8524bb395ad6c606772faa0d3 (patch)
tree00f60e9aa8a2065c974b37c1b1a8135fa7cb7f48
parentAdd extra information to logger. (diff)
downloadaur-runner-2a793b875f2327a8524bb395ad6c606772faa0d3.tar.gz
aur-runner-2a793b875f2327a8524bb395ad6c606772faa0d3.tar.xz
Add support for environment overrides.
-rwxr-xr-xmain.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/main.py b/main.py
index b88132f..c847c06 100755
--- a/main.py
+++ b/main.py
@@ -237,14 +237,19 @@ def main():
pkgs_ = data.get('packages')
+ # Flat list of all packages to operate on
pkg_names = []
+ # Mapping from package name to extra args for makepkg
pkg_options = {}
+ # Mapping from package name to extra environment to makepkg
+ pkg_envs = {}
for pkg in pkgs_:
if type(pkg) == str:
pkg_names.append(pkg)
elif type(pkg) == dict:
pkg_names.append(pkg['name'])
pkg_options[pkg['name']] = pkg.get('options', '').split(' ')
+ pkg_envs[pkg['name']] = pkg.get('env', {})
else:
logger.fatal('Package entries must be string or dict, not %s',
type(pkg))
@@ -279,7 +284,9 @@ def main():
cmd.stdout, package)
continue
cwd = m[1]
- env = { 'PKGDEST': pkgdest,
+ # Allow extra environments, but force our as non-overridable
+ env = { **pkg_envs.get(package, {}),
+ 'PKGDEST': pkgdest,
'PATH': ':'.join(path),
}
extra_opts = pkg_options.get(package, [])