include_defs('//lib/maven.defs')
include_defs('//lib/codemirror/cm.defs')

VERSION = '5.17.0'
TOP = 'META-INF/resources/webjars/codemirror/%s' % VERSION
TOP_MINIFIED = 'META-INF/resources/webjars/codemirror-minified/%s' % VERSION

maven_jar(
  name = 'codemirror-minified',
  id = 'org.webjars.npm:codemirror-minified:' + VERSION,
  sha1 = '05ad901fc9be67eb7ba8997d896488093deb898e',
  attach_source = False,
  license = 'codemirror-minified',
  visibility = [],
)

maven_jar(
  name = 'codemirror-original',
  id = 'org.webjars.npm:codemirror:' + VERSION,
  sha1 = 'c025b8d9aca1061e26d1fa482bea0ecea1412e85',
  attach_source = False,
  license = 'codemirror-original',
  visibility = [],
)

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

maven_jar(
  name = 'diff-match-patch',
  id = 'org.webjars:google-diff-match-patch:' + DIFF_MATCH_PATCH_VERSION,
  sha1 = '0cf1782dbcb8359d95070da9176059a5a9d37709',
  license = 'Apache2.0',
  attach_source = False,
)

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

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

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

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

  # Merge Addon bundled with diff-match-patch
  genrule(
    name = 'addon_merge%s' % suffix,
    cmd = ';'.join([
        "echo '/** @license' >$OUT",
        'unzip -p $(location :%s) %s/LICENSE >>$OUT' % (archive, top),
        "echo '*/\n' >>$OUT",
        "echo '// The google-diff-match-patch library is from https://google-diff-match-patch.googlecode.com/svn-history/r106/trunk/javascript/diff_match_patch.js\n' >> $OUT",
        "echo '/** @license' >>$OUT",
        'cat $(location //lib:LICENSE-Apache2.0) >>$OUT',
        "echo '*/' >>$OUT",
        'unzip -p $(location :diff-match-patch) %s/diff_match_patch.js >>$OUT' % DIFF_MATCH_PATCH_TOP,
        "echo ';' >> $OUT",
        'unzip -p $(location :%s) %s/addon/merge/merge.js >>$OUT' % (archive, top)
      ]
    ),
    out = 'addon_merge%s.js' % suffix,
  )

  # Jar packaging
  genrule(
    name = 'jar' + suffix,
    cmd = ';'.join([
      'cd $TMP',
      'mkdir -p net/codemirror/{addon,lib,mode,theme}',
      'cp $(location :css%s) net/codemirror/lib/cm.css' % suffix,
      'cp $(location :cm%s) net/codemirror/lib/cm.js' % suffix]
      + ['cp $(location :mode_%s%s) net/codemirror/mode/%s.js' % (n, suffix, n)
         for n in CM_MODES]
      + ['cp $(location :theme_%s%s) net/codemirror/theme/%s.css' % (n, suffix, n)
         for n in CM_THEMES]
      + ['cp $(location :addon_merge%s) net/codemirror/addon/merge_bundled.js' % suffix]
      + ['zip -qr $OUT net/codemirror/{addon,lib,mode,theme}']),
    out = 'codemirror%s.jar' % suffix,
  )

  prebuilt_jar(
    name = 'codemirror' + suffix,
    binary_jar = ':jar%s' % suffix,
    deps = [
      ':jar' + suffix,
      '//lib:LICENSE-' + archive,
    ],
    visibility = ['PUBLIC'],
  )

