c323676ef6
This reverts commit *f5124487a4
(update to 5.27.2) *8edeb9e69c
(update to 5.26.0) Reason for revert: This breaks the GWTUI in the google deployment in mysterious ways: gerrit_ui-0.js:65354 Thu Jun 29 13:36:57 GMT+200 2017 Class$S735 SEVERE: (TypeError) : Cannot read property 'attach' of undefined Class$S171: (TypeError) : Cannot read property 'attach' of undefined at Unknown.keyMap(https://gerrit-review.googlesource.com/gerrit_ui/5DADEBC80EFC7449BFD80840CBA4A5CF.cache.js) at Unknown.new CodeMirror$1(https://gerrit-review.googlesource.com/gerrit_ui/5DADEBC80EFC7449BFD80840CBA4A5CF.cache.js) at Unknown.CodeMirror$1(https://gerrit-review.googlesource.com/gerrit_ui/5DADEBC80EFC7449BFD80840CBA4A5CF.cache.js) at Unknown.newCM(gerrit_ui-7.js) at Unknown.create_73(gerrit_ui-7.js) at Unknown.newCm(gerrit_ui-2.js) with the symptoms going away after a browser cache flush. Our new library upgrade policy says that the upgrade window is already closed and this version does not provide any critical fixes. Change-Id: I524608b6adf7f4276fc03ff9d8e91a779a9e9ae8
356 lines
8.3 KiB
Python
356 lines
8.3 KiB
Python
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],
|
|
)
|