blob: 5eb126c8f842229c4d5c03d61a8534c12b31e08d [file] [log] [blame]
#!/usr/bin/python
from multiprocessing import cpu_count
from os import environ, makedirs, mkdir
from os.path import dirname, exists
from subprocess import Popen, PIPE
from sys import argv, exit, stderr
TMP = environ['TMP']
cp, opt, end = [], [], False
module = argv[1]
outzip = argv[2]
for a in argv[3:]:
if end:
if a.endswith('.jar'):
cp.append(a)
elif a == '--':
end = True
else:
opt.append(a)
for d in ['work', 'deploy', 'extra', 'war']:
mkdir(TMP + '/' + d)
cmd = [
'java', '-Xmx512m',
'-classpath', ':'.join(cp),
'com.google.gwt.dev.Compiler',
'-workDir', TMP + '/work',
'-deploy', TMP + '/deploy',
'-extra', TMP + '/extra',
'-war', TMP + '/war',
'-localWorkers', str(cpu_count()),
] + opt + [module]
gwt = Popen(cmd, stdout = PIPE, stderr = PIPE)
out, err = gwt.communicate()
if gwt.returncode != 0:
print >>stderr, out
print >>stderr, err
exit(gwt.returncode)
if not exists(dirname(outzip)):
makedirs(dirname(outzip))
zip = Popen(['zip', '-9qr', outzip, '.'], cwd = TMP + '/war')
zip.communicate()
if zip.returncode != 0:
exit(call(zip.returncode))