load("//tools/bzl:genrule2.bzl", "genrule2")
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library", "closure_js_binary")
load(
    "//tools/bzl:js.bzl",
    "bower_component_bundle",
    "vulcanize",
    "bower_component",
    "js_component",
)

def polygerrit_bundle(name, srcs, outs, app):
  appName = app.split(".html")[0].split("/").pop() # eg: gr-app

  closure_js_binary(
    name = name + "_closure_bin",
    # Known issue: Closure compilation not compatible with Polymer behaviors.
    # See: https://github.com/google/closure-compiler/issues/2042
    compilation_level = "WHITESPACE_ONLY",
    defs = [
      "--polymer_pass",
      "--jscomp_off=duplicate",
      "--force_inject_library=es6_runtime",
    ],
    language = "ECMASCRIPT5",
    deps = [name + "_closure_lib"],
  )

  closure_js_library(
    name = name + "_closure_lib",
    srcs = [appName + ".js"],
    convention = "GOOGLE",
    # TODO(davido): Clean up these issues: http://paste.openstack.org/show/608548
    # and remove this supression
    suppress = ["JSC_UNUSED_LOCAL_ASSIGNMENT"],
    deps = [
      "//lib/polymer_externs:polymer_closure",
      "@io_bazel_rules_closure//closure/library",
    ],
  )

  vulcanize(
    name = appName,
    srcs = srcs,
    app = app,
    deps = ["//polygerrit-ui:polygerrit_components.bower_components"],
  )

  native.filegroup(
    name = name + "_app_sources",
    srcs = [
      name + "_closure_bin.js",
      appName + ".html",
    ],
  )

  native.filegroup(
    name = name + "_css_sources",
    srcs = native.glob(["styles/**/*.css"]),
  )

  native.filegroup(
    name = name + "_top_sources",
    srcs = [
        "favicon.ico",
        "index.html",
    ],
  )

  genrule2(
    name = name,
    srcs = [
      name + "_app_sources",
      name + "_css_sources",
      name + "_top_sources",
      "//lib/fonts:robotomono",
      "//lib/js:highlightjs_files",
      # we extract from the zip, but depend on the component for license checking.
      "@webcomponentsjs//:zipfile",
      "//lib/js:webcomponentsjs"
    ],
    outs = outs,
    cmd = " && ".join([
      "mkdir -p $$TMP/polygerrit_ui/{styles,fonts,bower_components/{highlightjs,webcomponentsjs},elements}",
      "for f in $(locations " + name + "_app_sources); do ext=$${f##*.}; cp -p $$f $$TMP/polygerrit_ui/elements/"  + appName + ".$$ext; done",
      "cp $(locations //lib/fonts:robotomono) $$TMP/polygerrit_ui/fonts/",
      "for f in $(locations " + name + "_top_sources); do cp $$f $$TMP/polygerrit_ui/; done",
      "for f in $(locations "+ name + "_css_sources); do cp $$f $$TMP/polygerrit_ui/styles; done",
      "for f in $(locations //lib/js:highlightjs_files); do cp $$f $$TMP/polygerrit_ui/bower_components/highlightjs/ ; done",
      "unzip -qd $$TMP/polygerrit_ui/bower_components $(location @webcomponentsjs//:zipfile) webcomponentsjs/webcomponents-lite.js",
      "cd $$TMP",
      "find . -exec touch -t 198001010000 '{}' ';'",
      "zip -qr $$ROOT/$@ *",
    ]),
  )
