aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/bots/recipe_modules/env/api.py
blob: ea9ed523a80ae97feb527df3a34d2730e0409d2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.


from recipe_engine import recipe_api


class EnvApi(recipe_api.RecipeApi):
  def __call__(self, env_dict):
    env = self.m.context.env
    # If PATH is defined in both, merge them together, merging default_env into
    # path by replacing %(PATH)s
    upstream_path = env.get('PATH', '')
    env.update(env_dict)
    my_path = env_dict.get('PATH', '')
    if upstream_path and my_path and upstream_path != my_path:
      env['PATH'] = upstream_path.replace(r'%(PATH)s', my_path)

    return self.m.context(env=env)