mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
This reverts https://crrev.com/c/3697958 and https://crrev.com/c/3704921. One reason is that recipe bundle is not designed to be mutated. Another reason is the presence of gomacc binary under .cipd_bin causes an unexpected side effect. https://crbug.com/1337048 Bug: 931218, 1337048 Recipe-Nontrivial-Roll: build_limited Recipe-Nontrivial-Roll: build Recipe-Nontrivial-Roll: chrome_release Recipe-Nontrivial-Roll: chromiumos Recipe-Nontrivial-Roll: infra Change-Id: Iaea12a0ad9246c0781035aa499cc6c0bb42d71c3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3715873 Auto-Submit: Junji Watanabe <jwata@google.com> Reviewed-by: Takuto Ikuta <tikuta@chromium.org> Commit-Queue: Josip Sokcevic <sokcevic@google.com> Reviewed-by: Josip Sokcevic <sokcevic@google.com>
77 lines
2.0 KiB
Python
77 lines
2.0 KiB
Python
# Copyright 2016 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.
|
|
|
|
"""The `depot_tools` module provides safe functions to access paths within
|
|
the depot_tools repo."""
|
|
|
|
import contextlib
|
|
|
|
from recipe_engine import recipe_api
|
|
|
|
class DepotToolsApi(recipe_api.RecipeApi):
|
|
def __init__(self, **kwargs):
|
|
super(DepotToolsApi, self).__init__(**kwargs);
|
|
self._cipd_bin_setup_called = False
|
|
|
|
@property
|
|
def download_from_google_storage_path(self):
|
|
return self.repo_resource('download_from_google_storage.py')
|
|
|
|
@property
|
|
def upload_to_google_storage_path(self):
|
|
return self.repo_resource('upload_to_google_storage.py')
|
|
|
|
@property
|
|
def root(self):
|
|
"""Returns (Path): The "depot_tools" root directory."""
|
|
return self.repo_resource()
|
|
|
|
@property
|
|
def cros_path(self):
|
|
return self.repo_resource('cros')
|
|
|
|
@property
|
|
def gn_py_path(self):
|
|
return self.repo_resource('gn.py')
|
|
|
|
# TODO(dnj): Remove this once everything uses the "gsutil" recipe module
|
|
# version.
|
|
@property
|
|
def gsutil_py_path(self):
|
|
return self.repo_resource('gsutil.py')
|
|
|
|
@property
|
|
def ninja_path(self):
|
|
ninja_exe = 'ninja.exe' if self.m.platform.is_win else 'ninja'
|
|
return self.repo_resource(ninja_exe)
|
|
|
|
@property
|
|
def autoninja_path(self):
|
|
autoninja = 'autoninja.bat' if self.m.platform.is_win else 'autoninja'
|
|
return self.repo_resource(autoninja)
|
|
|
|
@property
|
|
def presubmit_support_py_path(self):
|
|
return self.repo_resource('presubmit_support.py')
|
|
|
|
@contextlib.contextmanager
|
|
def on_path(self):
|
|
"""Use this context manager to put depot_tools on $PATH.
|
|
|
|
Example:
|
|
|
|
```python
|
|
with api.depot_tools.on_path():
|
|
# run some steps
|
|
```
|
|
"""
|
|
# By default Depot Tools do not auto update on the bots.
|
|
# (crbug/1090603)
|
|
with self.m.context(
|
|
**{'env_suffixes': {
|
|
'PATH': [self.root],
|
|
'DEPOT_TOOLS_UPDATE': '0'
|
|
}}):
|
|
yield
|