def run_build_tool(bazel_path, target, targets, squelch_output=False): workspace = find_workspace() if not workspace: return try: # If we can bootstrap a new version, do it once. with metrics.create_and_register_timer("bzl_bootstrap_ms") as t: bzl_script = build_tool(bazel_path, target, targets, squelch_output=squelch_output) bzl_script_path = os.path.join(workspace, bzl_script) argv = [bzl_script_path] + list(sys.argv[1:]) os.environ["BZL_SKIP_BOOTSTRAP"] = "1" os.environ["BZL_BOOTSTRAP_MS"] = str(t.get_interval_ms()) os.environ["BZL_RUNNING_REBUILT_BZL"] = "1" exec_wrapper.execv(bzl_script_path, argv) except subprocess.CalledProcessError: print( "WARN: Failed to build %s, continuing without self-update." % target, file=sys.stderr, ) # If something goes wrong during rebuild, just run this version. pass
def cmd_gen_as_tool(args, bazel_args, mode_args): workspace_dir = bazel_utils.find_workspace() bzl_gen = bazel_utils.build_tool(args.bazel_path, "@dbx_build_tools//build_tools:bzl-gen") bzl_gen_path = os.path.join(workspace_dir, bzl_gen) argv = [os.path.basename(bzl_gen_path)] + mode_args exec_wrapper.execv(bzl_gen_path, argv)
def _get_bzl_gen_path(bazel_path): # type: (str) -> str workspace_dir = bazel_utils.find_workspace() bzl_gen = bazel_utils.build_tool(bazel_path, "@dbx_build_tools//build_tools:bzl-gen") return os.path.join(workspace_dir, bzl_gen)