| Index: recipe_modules/step/api.py
|
| diff --git a/recipe_modules/step/api.py b/recipe_modules/step/api.py
|
| index 4a250c1b057290e7cebcc247be4c41c866297e16..0c2b9909d683eb8707f1f05a576899233c2c4c18 100644
|
| --- a/recipe_modules/step/api.py
|
| +++ b/recipe_modules/step/api.py
|
| @@ -187,12 +187,24 @@ class StepApi(recipe_api.RecipeApiPlain):
|
| cwd = self.m.context.cwd
|
| if cwd is not None and cwd != self.m.path['start_dir']:
|
| kwargs['cwd'] = cwd
|
| - kwargs['env'] = self.m.context.env
|
| - if self._prefix_path:
|
| - ps = self.m.path.pathsep
|
| - prefix = ps.join(self._prefix_path)
|
| - suffix = kwargs['env'].get('PATH', '%(PATH)s')
|
| - kwargs['env']['PATH'] = '%s%s%s' % (prefix, ps, suffix)
|
| +
|
| + # Assemble the environment.
|
| + with self.m.context(env={
|
| + 'PATH': self.m.context.Prefix(*self._prefix_path)}):
|
| + env_values = self.m.context.env
|
| + env = {}
|
| + for k, path_tuple in self.m.context.env_prefixes.iteritems():
|
| + path_tuple = tuple(str(v) for v in path_tuple)
|
| + path_tuple += (env_values.get(k) or '%%(%s)s' % (k,),)
|
| + env[k] = self.m.path.pathsep.join(path_tuple)
|
| +
|
| + for k, v in env_values.iteritems():
|
| + if k in env or v == '':
|
| + continue # Already processed, or empty.
|
| + env[k] = v
|
| +
|
| + kwargs['env'] = env
|
| +
|
| kwargs['infra_step'] = self.m.context.infra_step or bool(infra_step)
|
| kwargs['step_nest_level'] = self.m.context.nest_level
|
| kwargs['name'] = full_name
|
|
|