import os

original_java_library = java_library
def java_library(
    name,
    srcs=[],
    **kwargs
    ):

  original_java_library(
    name=name,
    srcs=srcs,
    **kwargs
  )

  create_infer_genrule(name, srcs)

original_android_library = android_library
def android_library(
    name,
    srcs=[],
    **kwargs
    ):

  original_android_library(
    name=name,
    srcs=srcs,
    **kwargs
  )

  create_infer_genrule(name, srcs)

def create_infer_genrule(
    name,
    srcs
    ):
  genrule_name = name + '_infer'
  genrule(
    name = genrule_name,
    srcs=srcs,
    cmd = ' '.join([
        os.getenv('INFER_BIN', 'infer'),
        '--genrule-mode',
        '--project-root', os.getenv('PROJECT_ROOT', os.environ['PWD']),
        '--eradicate-only',
        '--results-dir', '$OUT',
        '--classpath', '$(classpath :{})'.format(name),
        '--sourcepath', '$SRCDIR',
        '--generated-classes', '$(location :{})'.format(name),
    ]),
    out = 'infer_out',
  )