示例#1
0
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
示例#2
0
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)
示例#3
0
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)