aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Burgess IV <gbiv@google.com>2020-06-29 16:01:58 -0700
committerGeorge Burgess <gbiv@chromium.org>2020-06-30 20:31:59 +0000
commitedc59f7812ca3aa1b5e304d2db7ee4cc44d26482 (patch)
treefbf628de87ea86d3fba4071ef23d6e467d04e503
parentd6f4dfa85362baa904f328bfbafa50765315ac0e (diff)
downloadtoolchain-utils-edc59f7812ca3aa1b5e304d2db7ee4cc44d26482.tar.gz
presubmits: respect CHROMEOS_ROOT_DIRECTORY when entering the chroot
BUG=chromium:1100659 TEST=Ran presubmits inside of the CrOS tree, and outside with CHROMEOS_ROOT_DIRECTORY set. Change-Id: I119d13f8f7b6b0f8a1c94750fe5e90be5ad952be Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2274728 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Caroline Tice <cmtice@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
-rwxr-xr-xtoolchain_utils_githooks/check-presubmit.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/toolchain_utils_githooks/check-presubmit.py b/toolchain_utils_githooks/check-presubmit.py
index 10eb6e36..274a75f4 100755
--- a/toolchain_utils_githooks/check-presubmit.py
+++ b/toolchain_utils_githooks/check-presubmit.py
@@ -228,6 +228,10 @@ def check_py_format(toolchain_utils_root: str,
return [(name, get_check_result_or_catch(task)) for name, task in tasks]
+def find_chromeos_root_directory() -> t.Optional[str]:
+ return os.getenv('CHROMEOS_ROOT_DIRECTORY')
+
+
def check_cros_lint(
toolchain_utils_root: str, thread_pool: multiprocessing.pool.ThreadPool,
files: t.Iterable[str]) -> t.Union[t.List[CheckResult], CheckResult]:
@@ -259,7 +263,7 @@ def check_cros_lint(
if cros_lint is not None:
return cros_lint
- cros_root = os.getenv('CHROMEOS_ROOT_DIRECTORY')
+ cros_root = find_chromeos_root_directory()
if cros_root:
cros_lint = try_run_cros_lint(os.path.join(cros_root, 'chromite/bin/cros'))
if cros_lint is not None:
@@ -496,10 +500,16 @@ def maybe_reexec_inside_chroot(autofix: bool, files: t.List[str]) -> None:
return
enter_chroot = True
+ chdir_to = None
toolchain_utils = detect_toolchain_utils_root()
if find_repo_root(toolchain_utils) is None:
- print('Standalone toolchain-utils checkout detected; cannot enter chroot.')
- enter_chroot = False
+ chromeos_root_dir = find_chromeos_root_directory()
+ if chromeos_root_dir is None:
+ print('Standalone toolchain-utils checkout detected; cannot enter '
+ 'chroot.')
+ enter_chroot = False
+ else:
+ chdir_to = chromeos_root_dir
if not has_executable_on_path('cros_sdk'):
print('No `cros_sdk` detected on $PATH; cannot enter chroot.')
@@ -529,7 +539,11 @@ def maybe_reexec_inside_chroot(autofix: bool, files: t.List[str]) -> None:
args.append('--no_autofix')
args.extend(rebase_path(x) for x in files)
- print('Attempting to enter the chroot...')
+ if chdir_to is None:
+ print('Attempting to enter the chroot...')
+ else:
+ print(f'Attempting to enter the chroot for tree at {chdir_to}...')
+ os.chdir(chdir_to)
os.execvp(args[0], args)