def normalize_target_name(target):
  return target.replace("//", "").replace("/", "__").replace(":", "___")

def license_map(name, targets = [], opts = [], **kwargs):
  """Generate XML for all targets that depend directly on a LICENSE file"""
  xmls = []
  tools = [ "//tools/bzl:license-map.py", "//lib:all-licenses" ]
  for target in targets:
    subname = name + "_" + normalize_target_name(target) + ".xml"
    xmls.append("$(location :%s)" % subname)
    tools.append(subname)
    native.genquery(
      name = subname,
      scope = [ target ],

      # Find everything that depends on a license file, but remove
      # the license files themselves from this list.
      expression = 'rdeps(%s, filter("//lib:LICENSE.*", deps(%s)),1) - filter("//lib:LICENSE.*", deps(%s))' % (target, target, target),

      # We are interested in the edges of the graph ({java_library,
      # license-file} tuples).  'query' provides this in the XML output.
      opts = [ "--output=xml", ],
    )

  # post process the XML into our favorite format.
  native.genrule(
    name = "gen_license_txt_" + name,
    cmd = "python $(location //tools/bzl:license-map.py) %s %s > $@" % (" ".join(opts), " ".join(xmls)),
    outs = [ name + ".txt" ],
    tools = tools,
    **kwargs
  )

def license_test(name, target):
  """Make sure a target doesn't depend on DO_NOT_DISTRIBUTE license"""
  txt = name + "-forbidden.txt"

  # fully qualify target name.
  if target[0] not in ":/":
    target = ":" + target
  if target[0] != "/":
    target = "//" + PACKAGE_NAME + target

  forbidden = "//lib:LICENSE-DO_NOT_DISTRIBUTE"
  native.genquery(
    name = txt,
    scope = [ target, forbidden ],
    # Find everything that depends on a license file, but remove
    # the license files themselves from this list.
    expression = 'rdeps(%s, "%s", 1) - rdeps(%s, "%s", 0)' % (target, forbidden, target, forbidden),
  )
  native.sh_test(
    name = name,
    srcs = [ "//tools/bzl:test_license.sh" ],
    args  = [ "$(location :%s)" % txt ],
    data = [ txt ],
  )
