Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(933)

Unified Diff: builder.py

Issue 6824021: Add features flag to gmerge. (Closed) Base URL: http://git.chromium.org/git/dev-util.git@master
Patch Set: Refactor to use environ Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gmerge » ('j') | gmerge » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: builder.py
diff --git a/builder.py b/builder.py
index bf83c3e7f82462f240e23e8b5ee52262e1c39afd..7a6af9cc62475c9c36f669cf2f0c10e67b0757ff 100644
--- a/builder.py
+++ b/builder.py
@@ -51,13 +51,19 @@ class Builder(object):
def Build(self, board, pkg, additional_args):
"""Handles a build request from the cherrypy server."""
- cherrypy.log('Additional build request arguments: '+ str(additional_args),
+ cherrypy.log('Additional build request arguments: ' + str(additional_args),
'BUILD')
- original_use = os.environ.get('USE', '')
+ def _AppendStrToEnvVar(env, var, additional_string):
+ env[var] = env.get(var, '') + ' ' + additional_string
+ cherrypy.log('%s flags modified to %s' % (var, env[var]), 'BUILD')
+
+ env_copy = os.environ.copy()
if 'use' in additional_args:
- os.environ['USE'] = original_use + ' ' + additional_args['use']
- cherrypy.log('USE flags modified to ' + os.environ['USE'], 'BUILD')
+ _AppendStrToEnvVar(env_copy, 'USE', additional_args['use'])
+
+ if 'features' in additional_args:
+ _AppendStrToEnvVar(env_copy, 'FEATURES', additional_args['features'])
try:
if (self._ShouldBeWorkedOn(board, pkg) and
@@ -67,7 +73,7 @@ class Builder(object):
'Either start working on the package or pass --accept_stable '
'to gmerge')
- rc = subprocess.call(['emerge-%s' % board, pkg])
+ rc = subprocess.call(['emerge-%s' % board, pkg], env=env_copy)
if rc != 0:
return self.SetError('Could not emerge ' + pkg)
@@ -80,5 +86,3 @@ class Builder(object):
return 'Success\n'
except OSError, e:
return self.SetError('Could not execute build command: ' + str(e))
- finally:
- os.environ['USE'] = original_use
« no previous file with comments | « no previous file | gmerge » ('j') | gmerge » ('J')

Powered by Google App Engine
This is Rietveld 408576698