load("@bazel_pip_dev_deps//:requirements.bzl", "requirement")
load("@rules_python//python:defs.bzl", "py_binary", "py_library", "py_test")

BUILD_SCM_REV_CMD = "$$(grep BUILD_SCM_REVISION bazel-out/volatile-status.txt | sed 's/^BUILD_SCM_REVISION //')"

# Requires --config=docs
genrule(
    name = "gen_mdx_release_docs",
    srcs = [
        "//docs",
        "//src/main/java/com/google/devtools/build/lib:mdx-reference-docs.zip",
    ],
    outs = [
        "mdx_release_docs.zip",
    ],
    cmd = "$(location :create_release_docs)" +
          " --version=" + BUILD_SCM_REV_CMD +
          " --narrative_docs_path=$(location //docs)" +
          " --reference_docs_path=$(location //src/main/java/com/google/devtools/build/lib:mdx-reference-docs.zip)" +
          " --output_path=$(OUTS)",
    stamp = 1,
    tools = [
        ":create_release_docs",
    ],
)

# Requires --config=docs
# TODO: delete once we've deprecated DevSite.
genrule(
    name = "gen_release_docs",
    srcs = [
        ":new_toc.yaml",
        ":new_buttons.html",
        "//site/en:docs",
        "//src/main/java/com/google/devtools/build/lib:reference-docs.zip",
    ],
    outs = [
        "release_docs.zip",
    ],
    cmd = "$(location :create_release_docs)" +
          " --version=" + BUILD_SCM_REV_CMD +
          " --toc_path=$(location :new_toc.yaml)" +
          " --buttons_path=$(location :new_buttons.html)" +
          " --narrative_docs_path=$(location //site/en:docs)" +
          " --reference_docs_path=$(location //src/main/java/com/google/devtools/build/lib:reference-docs.zip)" +
          " --output_path=$(OUTS)",
    stamp = 1,
    tools = [
        ":create_release_docs",
    ],
)

# Requires --config=docs
genrule(
    name = "gen_new_toc",
    srcs = [
        "//site/en:versions/_toc.yaml",
        "//site/en:_buttons.html",
    ],
    outs = [
        "new_toc.yaml",
        "new_buttons.html",
    ],
    cmd = "$(location //src/main/java/com/google/devtools/build/docgen/release:toc_updater)" +
          " -i $(location //site/en:versions/_toc.yaml)" +
          " -o $(location new_toc.yaml)" +
          " -v " + BUILD_SCM_REV_CMD +
          " --version_indicator_input=$(location //site/en:_buttons.html)" +
          " --version_indicator_output=$(location new_buttons.html)",
    stamp = 1,
    tools = [
        "//src/main/java/com/google/devtools/build/docgen/release:toc_updater",
    ],
)

py_binary(
    name = "create_release_docs",
    srcs = ["create_release_docs.py"],
    deps = [
        ":rewriter",
        "//third_party/py/abseil",
    ],
)

py_library(
    name = "rewriter",
    srcs = ["rewriter.py"],
)

py_test(
    name = "rewriter_test",
    srcs = ["rewriter_test.py"],
    data = [":testdata"],
    deps = [
        ":rewriter",
        "//third_party/py/abseil",
    ],
)

py_binary(
    name = "docs2mdx",
    srcs = ["docs2mdx.py"],
    visibility = [
        "//src/main/java/com/google/devtools/build/lib:__pkg__",
    ],
    deps = [
        "//third_party/py/abseil",
        requirement("markdownify"),
    ],
)

filegroup(
    name = "srcs",
    srcs = glob(["**"]),
    visibility = ["//scripts:__pkg__"],
)

filegroup(
    name = "testdata",
    srcs = glob(["testdata/**"]),
    visibility = [
        ":__pkg__",
    ],
)
