...

Text file src/github.com/bazelbuild/bazel-gazelle/docs/BUILD.bazel

Documentation: github.com/bazelbuild/bazel-gazelle/docs

     1"""Documentation generation with stardoc
     2
     3This is in a separate package from both the stardoc source files and the
     4resulting documentation markdown files, to prevent users trying to load()
     5the stardoc repository, which is not a dependency users should install.
     6"""
     7
     8load("@bazel_skylib//rules:write_file.bzl", "write_file")
     9load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
    10load("@io_bazel_stardoc//stardoc:stardoc.bzl", "stardoc")
    11
    12# gazelle:ignore
    13_DOC_SRCS = {
    14    "//internal:repository_docs": "repository.md",
    15    "//internal:extend_docs": "extend.md",
    16}
    17
    18[
    19    stardoc(
    20        name = out.replace(".md", "_docgen"),
    21        out = out,
    22        # Convention: foo.bzl has bzl_library named "foo"
    23        input = input + ".bzl",
    24        deps = [input],
    25    )
    26    for [
    27        input,
    28        out,
    29    ] in _DOC_SRCS.items()
    30]
    31
    32[
    33    diff_test(
    34        name = "check_" + out,
    35        failure_message = "Please run bazel run //docs:update",
    36        # source file (InputArtifact)
    37        file1 = "//:" + out,
    38        # result from stardoc rule above
    39        file2 = out,
    40    )
    41    for out in _DOC_SRCS.values()
    42]
    43
    44write_file(
    45    name = "gen_update",
    46    out = "update.sh",
    47    content = [
    48        "#!/usr/bin/env bash",
    49        "cd $BUILD_WORKSPACE_DIRECTORY",
    50    ] + [
    51        "cp -fv bazel-bin/docs/{0} {0}".format(v)
    52        for v in _DOC_SRCS.values()
    53    ],
    54)
    55
    56sh_binary(
    57    name = "update",
    58    srcs = ["update.sh"],
    59    data = _DOC_SRCS.values(),
    60)

View as plain text