blob: 7ac834de2cc31744738a5839b06afa849aa8338b [file] [log] [blame]
#!/usr/bin/python
from argparse import ArgumentParser
from os import environ, makedirs, path, symlink
from sys import exit, stderr
from subprocess import check_output, Popen
def call(cmd, cwd = None):
p = Popen(cmd, cwd = cwd)
p.communicate()
if p.returncode != 0:
exit(p.returncode)
parser = ArgumentParser()
parser.add_argument('-o')
parser.add_argument('--lib', nargs='*')
parser.add_argument('--pgmlib', nargs='*')
parser.add_argument('--war', nargs='*')
args = parser.parse_args()
war = environ['TMP']
root = war[0:war.index('buck-out/')]
libdir = path.join(war, 'WEB-INF', 'lib')
pgmdir = path.join(war, 'WEB-INF', 'pgm-lib')
jars = set()
if args.lib:
makedirs(libdir)
cp = check_output(['buck', 'audit', 'classpath'] + args.lib)
for j in cp.strip().split('\n'):
jars.add(j)
if j.startswith('buck-out/gen/gerrit-'):
n = j.split('/')[2] + '-' + path.basename(j)
else:
n = path.basename(j)
symlink(
path.join(root, j),
path.join(libdir, n))
if args.pgmlib:
makedirs(pgmdir)
cp = check_output(['buck', 'audit', 'classpath'] + args.pgmlib)
for j in cp.strip().split('\n'):
if j in jars:
continue
if j.startswith('buck-out/gen/gerrit-'):
n = j.split('/')[2] + '-' + path.basename(j)
else:
n = path.basename(j)
symlink(
path.join(root, j),
path.join(pgmdir, n))
if args.war:
for s in args.war:
call(['unzip', '-q', '-d', war, s])
call(['zip', '-9qr', args.o, '.'], cwd = war)