Han-Wen Nienhuys 0a6495efc9 Documentation: check in (js_)licenses.txt
Add a test that ensures that the checked in version is up to date.

The license generation is tied closely to the Bazel build and the
layout of the Gerrit source tree.

By checking in the license files, alternative builds (such as the
Google internal build) do not have to replicate the license
generation step, or rerun the upstream Gerrit bazel build.

Change-Id: I500717e38de6c337ce552815e46562648df48b2f
2019-03-28 15:45:58 +00:00

113 lines
2.4 KiB
Python

load("//tools/bzl:asciidoc.bzl", "documentation_attributes", "genasciidoc", "genasciidoc_zip")
load("//tools/bzl:license.bzl", "license_map")
package(default_visibility = ["//visibility:public"])
exports_files([
"replace_macros.py",
])
filegroup(
name = "prettify_files",
srcs = [
":prettify.min.css",
":prettify.min.js",
],
)
genrule(
name = "prettify_min_css",
srcs = ["//resources/com/google/gerrit/prettify:client/prettify.css"],
outs = ["prettify.min.css"],
cmd = "cp $< $@",
)
genrule(
name = "prettify_min_js",
srcs = ["//resources/com/google/gerrit/prettify:client/prettify.js"],
outs = ["prettify.min.js"],
cmd = "cp $< $@",
)
filegroup(
name = "resources",
srcs = glob([
"images/*.jpg",
"images/*.png",
]) + [
":prettify_files",
"//:LICENSES.txt",
],
)
license_map(
name = "licenses",
opts = ["--asciidoctor"],
targets = [
"//polygerrit-ui/app:polygerrit_ui",
"//java/com/google/gerrit/pgm",
],
)
license_map(
name = "js_licenses",
targets = [
"//polygerrit-ui/app:polygerrit_ui",
],
)
sh_test(
name = "check_licenses",
srcs = ["check_licenses_test.sh"],
data = [
"js_licenses.gen.txt",
"js_licenses.txt",
"licenses.gen.txt",
"licenses.txt",
],
)
DOC_DIR = "Documentation"
SRCS = glob(["*.txt"])
genrule(
name = "index",
srcs = SRCS,
outs = ["index.jar"],
cmd = "$(location //java/com/google/gerrit/asciidoctor:doc_indexer) " +
"-o $(OUTS) " +
"--prefix \"%s/\" " % DOC_DIR +
"--in-ext \".txt\" " +
"--out-ext \".html\" " +
"$(SRCS)",
tools = ["//java/com/google/gerrit/asciidoctor:doc_indexer"],
)
# For the same srcs, we can have multiple genasciidoc_zip rules, but only one
# genasciidoc rule. Because multiple genasciidoc rules will have conflicting
# output files.
genasciidoc(
name = "Documentation",
srcs = SRCS,
attributes = documentation_attributes(),
backend = "html5",
)
genasciidoc_zip(
name = "html",
srcs = SRCS,
attributes = documentation_attributes(),
backend = "html5",
directory = DOC_DIR,
)
genasciidoc_zip(
name = "searchfree",
srcs = SRCS,
attributes = documentation_attributes(),
backend = "html5",
directory = DOC_DIR,
searchbox = False,
)