gerrit/plugins/BUCK
David Pursehouse 1164e53283 Allow to add custom core plugins in release build
Add a new CUSTOM list in the plugins BUCK config, which is by
default empty. This allows a cleaner patch when adding custom
plugins to be included as 'core' in the release build of a
forked Gerrit.

Change-Id: I12783a8222550983e65bf3bbcd8aef08cdcc9bed
2015-12-14 19:25:49 +09:00

42 lines
1.1 KiB
Python

BASE = get_base_path()
CORE = [
'commit-message-length-validator',
'download-commands',
'replication',
'reviewnotes',
'singleusergroup'
]
CUSTOM = [
# Add custom core plugins here
]
# 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 core_plugins(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 = core_plugins(CORE + CUSTOM)
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 ' +
' '.join(['$(location //%s/%s:%s)' % (BASE, n, n) for n in HAVE]) +
';do ln -s $s $TMP/WEB-INF/plugins;done;' +
'cd $TMP;' +
'zip -qr $OUT .',
out = 'core.zip',
visibility = ['//:release'],
)