diff options
author | George Burgess IV <gbiv@google.com> | 2020-06-29 16:01:58 -0700 |
---|---|---|
committer | George Burgess <gbiv@chromium.org> | 2020-06-30 20:31:59 +0000 |
commit | edc59f7812ca3aa1b5e304d2db7ee4cc44d26482 (patch) | |
tree | fbf628de87ea86d3fba4071ef23d6e467d04e503 | |
parent | d6f4dfa85362baa904f328bfbafa50765315ac0e (diff) | |
download | toolchain-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-x | toolchain_utils_githooks/check-presubmit.py | 22 |
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) |