BASE = get_base_path()
CORE = [
  'commit-message-length-validator',
  'replication',
  'reviewnotes',
]

# buck audit parses and resolves all deps even if not reachable
# from the root(s) passed to audit. Filter dependencies to only
# the ones that currently exist to allow buck to parse cleanly.
# TODO(sop): buck should more lazily resolve deps
def filter(names):
  from os import path
  h, n = [], []
  for p in names:
    if path.exists(path.join(BASE, p, 'BUCK')):
      h.append(p)
    else:
      n.append(p)
  return h, n
HAVE, NEED = filter(CORE)

genrule(
  name = 'core',
  cmd = '' +
    ';'.join(['echo >&2 plugins/'+n+' is required.' for n in NEED]) +
    (';echo >&2;exit 1;' if NEED else '') +
    'mkdir -p $TMP/WEB-INF/plugins &&' +
    'for s in $SRCS;do ln -s $s $TMP/WEB-INF/plugins;done;' +
    'cd $TMP &&' +
    'zip -qr $OUT .',
  srcs = [genfile('%s/%s.jar' % (n, n)) for n in CORE],
  deps = ['//%s/%s:%s' % (BASE, n, n) for n in HAVE],
  out = 'core.zip',
  visibility = ['//:release'],
)
