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],
        )

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