load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//scripts/docs:jekyll.bzl", "jekyll_build")
load("//scripts/docs:doc_versions.bzl", "DOC_VERSIONS")

exports_files(
    [
        "docs/user-manual.html",
        "command-line-reference-prefix.html",
        "command-line-reference-suffix.html",
    ],
)

exports_files(
    [
        "images/favicon.ico",
    ],
    visibility = ["//src/main/native/windows:__pkg__"],
)

DOT_GRAPH_HTML_FILES = [
    "docs/query.html",
    "docs/build-ref.html",
]

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

filegroup(
    name = "jekyll-srcs",
    srcs = glob(
        ["**/*"],
        exclude = [
            "BUILD",
            "jekyll-tree.sh",
            "*.swp",
            "command-line-reference-prefix.html",
            "command-line-reference-suffix.html",
            "site/README.md",
        ] + DOT_GRAPH_HTML_FILES,
    ),
)

pkg_tar(
    name = "jekyll-files",
    srcs = [":jekyll-srcs"],
    strip_prefix = ".",
)

pkg_tar(
    name = "bootstrap-css",
    srcs = ["//third_party/css/bootstrap:bootstrap_css"],
    package_dir = "assets",
    strip_prefix = "/third_party/css/bootstrap",
)

pkg_tar(
    name = "bootstrap-images",
    srcs = ["//third_party/css/bootstrap:bootstrap_images"],
    package_dir = "assets",
    strip_prefix = "/third_party/css/bootstrap",
)

pkg_tar(
    name = "font-awesome-css",
    srcs = ["//third_party/css/font_awesome:font_awesome_css"],
    package_dir = "assets",
    strip_prefix = "/third_party/css/font_awesome",
)

pkg_tar(
    name = "font-awesome-font",
    srcs = ["//third_party/css/font_awesome:font_awesome_font"],
    package_dir = "assets",
    strip_prefix = "/third_party/css/font_awesome",
)

pkg_tar(
    name = "bootstrap-js",
    srcs = ["//third_party/javascript/bootstrap:bootstrap_js"],
    package_dir = "assets",
    strip_prefix = "/third_party/javascript/bootstrap",
)

pkg_tar(
    name = "jekyll-base",
    deps = [
        ":bootstrap-css",
        ":bootstrap-images",
        ":bootstrap-js",
        ":dot-graphs",
        ":font-awesome-css",
        ":font-awesome-font",
        ":jekyll-files",
    ],
)

pkg_tar(
    name = "skylark-rule-docs",
    srcs = [
        "//tools/build_defs/pkg:README.md",
    ],
    strip_prefix = "/tools/build_defs",
)

genrule(
    name = "dot-graphs",
    srcs = DOT_GRAPH_HTML_FILES,
    outs = ["dot.tar"],
    cmd = """
origdir=$$PWD
tmpdir=$$(mktemp -d)
for f in $(SRCS); do
    mkdir -p $$tmpdir/$$(dirname $$f)
    if which dot > /dev/null; then
      $(location //scripts/docs:generate_dot_graphs) < $$f > $$tmpdir/$$f
    else
      cp $$f $$tmpdir/$$f
    fi
done
cd $$tmpdir/site
tar cf $$origdir/$@ *
""",
    tools = ["//scripts/docs:generate_dot_graphs"],
)

# Generate the documentation tree in the current git worktree
genrule(
    name = "jekyll-tree",
    srcs = [
        ":jekyll-base",
        ":skylark-rule-docs",
        "//src/main/java/com/google/devtools/build/lib:gen_buildencyclopedia",
        "//src/main/java/com/google/devtools/build/lib:gen_skylarklibrary",
        "//src/main/java/com/google/devtools/build/lib:gen_command-line-reference",
        "//tools/build_defs/repo:doc",
    ],
    outs = ["jekyll-tree.tar"],
    cmd = ("$(location jekyll-tree.sh) $@ " +
           "$(location :jekyll-base) " +
           "$(location :skylark-rule-docs) " +
           "$(location //src/main/java/com/google/devtools/build/lib:gen_buildencyclopedia) " +
           "$(location //src/main/java/com/google/devtools/build/lib:gen_skylarklibrary) " +
           "$(location //src/main/java/com/google/devtools/build/lib:gen_command-line-reference) " +
           "$(location //tools/build_defs/repo:doc)"),
    tools = [
        "jekyll-tree.sh",
    ],
)

jekyll_build(
    name = "site",
    srcs = [
        "@jekyll_tree_%s//file" % DOC_VERSION["version"].replace(".", "_")
        for DOC_VERSION in DOC_VERSIONS
    ] + [":jekyll-tree"],  # jekyll-tree *must* come last to be the default.
    bucket = "docs.bazel.build",
)
