load("@rules_java//java:defs.bzl", "java_import")
load("//tools/bzl:genrule2.bzl", "genrule2")

CM_CSS = [
    "lib/codemirror.css",
    "addon/dialog/dialog.css",
    "addon/merge/merge.css",
    "addon/scroll/simplescrollbars.css",
    "addon/search/matchesonscrollbar.css",
    "addon/lint/lint.css",
]

CM_JS = [
    "lib/codemirror.js",
    "mode/meta.js",
    "keymap/emacs.js",
    "keymap/sublime.js",
    "keymap/vim.js",
]

CM_ADDONS = [
    "dialog/dialog.js",
    "edit/closebrackets.js",
    "edit/matchbrackets.js",
    "edit/trailingspace.js",
    "scroll/annotatescrollbar.js",
    "scroll/simplescrollbars.js",
    "search/jump-to-line.js",
    "search/matchesonscrollbar.js",
    "search/searchcursor.js",
    "search/search.js",
    "selection/mark-selection.js",
    "mode/multiplex.js",
    "mode/overlay.js",
    "mode/simple.js",
    "lint/lint.js",
]

# Available themes must be enumerated here,
# in gerrit-extension-api/src/main/java/com/google/gerrit/extensions/client/Theme.java,
# in gerrit-gwtui/src/main/java/net/codemirror/theme/Themes.java
CM_THEMES = [
    "3024-day",
    "3024-night",
    "abcdef",
    "ambiance",
    "base16-dark",
    "base16-light",
    "bespin",
    "blackboard",
    "cobalt",
    "colorforth",
    "dracula",
    "duotone-dark",
    "duotone-light",
    "eclipse",
    "elegant",
    "erlang-dark",
    "hopscotch",
    "icecoder",
    "isotope",
    "lesser-dark",
    "liquibyte",
    "material",
    "mbo",
    "mdn-like",
    "midnight",
    "monokai",
    "neat",
    "neo",
    "night",
    "paraiso-dark",
    "paraiso-light",
    "pastel-on-dark",
    "railscasts",
    "rubyblue",
    "seti",
    "solarized",
    "the-matrix",
    "tomorrow-night-bright",
    "tomorrow-night-eighties",
    "ttcn",
    "twilight",
    "vibrant-ink",
    "xq-dark",
    "xq-light",
    "yeti",
    "zenburn",
]

# Available modes must be enumerated here,
# in gerrit-gwtui/src/main/java/net/codemirror/mode/Modes.java,
# gerrit-gwtui/src/main/java/net/codemirror/mode/ModeInfo.java,
# and in CodeMirror's own mode/meta.js script.
CM_MODES = [
    "apl",
    "asciiarmor",
    "asn.1",
    "asterisk",
    "brainfuck",
    "clike",
    "clojure",
    "cmake",
    "cobol",
    "coffeescript",
    "commonlisp",
    "crystal",
    "css",
    "cypher",
    "d",
    "dart",
    "diff",
    "django",
    "dockerfile",
    "dtd",
    "dylan",
    "ebnf",
    "ecl",
    "eiffel",
    "elm",
    "erlang",
    "factor",
    "fcl",
    "forth",
    "fortran",
    "gas",
    "gfm",
    "gherkin",
    "go",
    "groovy",
    "haml",
    "handlebars",
    "haskell-literate",
    "haskell",
    "haxe",
    "htmlembedded",
    "htmlmixed",
    "http",
    "idl",
    "javascript",
    "jinja2",
    "jsx",
    "julia",
    "livescript",
    "lua",
    "markdown",
    "mathematica",
    "mbox",
    "mirc",
    "mllike",
    "modelica",
    "mscgen",
    "mumps",
    "nginx",
    "nsis",
    "ntriples",
    "octave",
    "oz",
    "pascal",
    "pegjs",
    "perl",
    "php",
    "pig",
    "powershell",
    "properties",
    "protobuf",
    "pug",
    "puppet",
    "python",
    "q",
    "r",
    "rpm",
    "rst",
    "ruby",
    "rust",
    "sas",
    "sass",
    "scheme",
    "shell",
    "sieve",
    "slim",
    "smalltalk",
    "smarty",
    "solr",
    "soy",
    "sparql",
    "spreadsheet",
    "sql",
    "stex",
    "stylus",
    "swift",
    "tcl",
    "textile",
    "tiddlywiki",
    "tiki",
    "toml",
    "tornado",
    "troff",
    "ttcn-cfg",
    "ttcn",
    "turtle",
    "twig",
    "vb",
    "vbscript",
    "velocity",
    "verilog",
    "vhdl",
    "vue",
    "webidl",
    "xml",
    "xquery",
    "yacas",
    "yaml-frontmatter",
    "yaml",
    "z80",
]

CM_VERSION = "5.25.0"

TOP = "META-INF/resources/webjars/codemirror/%s" % CM_VERSION

TOP_MINIFIED = "META-INF/resources/webjars/codemirror-minified/%s" % CM_VERSION

LICENSE = "//lib:LICENSE-codemirror-original"

LICENSE_MINIFIED = "//lib:LICENSE-codemirror-minified"

DIFF_MATCH_PATCH_VERSION = "20121119-1"

DIFF_MATCH_PATCH_TOP = ("META-INF/resources/webjars/google-diff-match-patch/%s" %
                        DIFF_MATCH_PATCH_VERSION)

def pkg_cm():
    for archive, suffix, top, license in [
        ("@codemirror-original//jar", "", TOP, LICENSE),
        ("@codemirror-minified//jar", "_r", TOP_MINIFIED, LICENSE_MINIFIED),
    ]:
        # Main JavaScript and addons
        genrule2(
            name = "cm" + suffix,
            cmd = " && ".join(
                [
                    "echo '/** @license' >$@",
                    "unzip -p $(location %s) %s/LICENSE >>$@" % (archive, top),
                    "echo '*/' >>$@",
                ] +
                ["unzip -p $(location %s) %s/%s >>$@" % (archive, top, n) for n in CM_JS] +
                [
                    "unzip -p $(location %s) %s/addon/%s >>$@" % (archive, top, n)
                    for n in CM_ADDONS
                ],
            ),
            tools = [archive],
            outs = ["cm%s.js" % suffix],
        )

        # Main CSS
        genrule2(
            name = "css" + suffix,
            cmd = " && ".join(
                [
                    "echo '/** @license' >$@",
                    "unzip -p $(location %s) %s/LICENSE >>$@" % (archive, top),
                    "echo '*/' >>$@",
                ] +
                [
                    "unzip -p $(location %s) %s/%s >>$@" % (archive, top, n)
                    for n in CM_CSS
                ],
            ),
            tools = [archive],
            outs = ["cm%s.css" % suffix],
        )

        # Modes
        for n in CM_MODES:
            genrule2(
                name = "mode_%s%s" % (n, suffix),
                cmd = " && ".join(
                    [
                        "echo '/** @license' >$@",
                        "unzip -p $(location %s) %s/LICENSE >>$@" % (archive, top),
                        "echo '*/' >>$@",
                        "unzip -p $(location %s) %s/mode/%s/%s.js >>$@" % (archive, top, n, n),
                    ],
                ),
                tools = [archive],
                outs = ["mode_%s%s.js" % (n, suffix)],
            )

        # Themes
        for n in CM_THEMES:
            genrule2(
                name = "theme_%s%s" % (n, suffix),
                cmd = " && ".join(
                    [
                        "echo '/** @license' >$@",
                        "unzip -p $(location %s) %s/LICENSE >>$@" % (archive, top),
                        "echo '*/' >>$@",
                        "unzip -p $(location %s) %s/theme/%s.css >>$@" % (archive, top, n),
                    ],
                ),
                tools = [archive],
                outs = ["theme_%s%s.css" % (n, suffix)],
            )

        # Merge Addon bundled with diff-match-patch
        genrule2(
            name = "addon_merge_with_diff_match_patch%s" % suffix,
            cmd = " && ".join(
                [
                    "echo '/** @license' >$@",
                    "unzip -p $(location %s) %s/LICENSE >>$@" % (archive, top),
                    "echo '*/\n' >>$@",
                    "echo '// The google-diff-match-patch library is from https://repo1.maven.org/maven2/org/webjars/google-diff-match-patch/%s/google-diff-match-patch-%s.jar\n' >> $@" % (DIFF_MATCH_PATCH_VERSION, DIFF_MATCH_PATCH_VERSION),
                    "echo '/** @license' >>$@",
                    "echo 'LICENSE-Apache2.0' >>$@",
                    "echo '*/' >>$@",
                    "unzip -p $(location @diff-match-patch//jar) %s/diff_match_patch.js >>$@" % DIFF_MATCH_PATCH_TOP,
                    "echo ';' >> $@",
                    "unzip -p $(location %s) %s/addon/merge/merge.js >>$@" % (archive, top),
                ],
            ),
            tools = [
                "@diff-match-patch//jar",
                # dependency just for license tracking.
                ":diff-match-patch",
                archive,
                "//lib:LICENSE-Apache2.0",
            ],
            outs = ["addon_merge_with_diff_match_patch%s.js" % suffix],
        )

        # Jar packaging
        genrule2(
            name = "jar" + suffix,
            cmd = " && ".join([
                                  "cd $$TMP",
                                  "mkdir -p net/codemirror/{addon,lib,mode,theme}",
                                  "cp $$ROOT/$(location :css%s) net/codemirror/lib/cm.css" % suffix,
                                  "cp $$ROOT/$(location :cm%s) net/codemirror/lib/cm.js" % suffix,
                              ] +
                              [
                                  "cp $$ROOT/$(location :mode_%s%s) net/codemirror/mode/%s.js" % (n, suffix, n)
                                  for n in CM_MODES
                              ] +
                              [
                                  "cp $$ROOT/$(location :theme_%s%s) net/codemirror/theme/%s.css" % (n, suffix, n)
                                  for n in CM_THEMES
                              ] +
                              ["cp $$ROOT/$(location :addon_merge_with_diff_match_patch%s) net/codemirror/addon/merge_bundled.js" % suffix] +
                              ["zip -qr $$ROOT/$@ net/codemirror/{addon,lib,mode,theme}"]),
            tools = [
                ":addon_merge_with_diff_match_patch%s" % suffix,
                ":cm%s" % suffix,
                ":css%s" % suffix,
            ] + [
                ":mode_%s%s" % (n, suffix)
                for n in CM_MODES
            ] + [
                ":theme_%s%s" % (n, suffix)
                for n in CM_THEMES
            ],
            outs = ["codemirror%s.jar" % suffix],
        )

        java_import(
            name = "codemirror" + suffix,
            jars = [":jar%s" % suffix],
            visibility = ["//visibility:public"],
            data = [license],
        )
