pack.py 1.42 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
#!/usr/bin/env python
#
# custom_rhino.jar from:
#   http://dojotoolkit.org/svn/dojo/buildscripts/lib/custom_rhino.jar
#
import os
import re
import sys
import shutil
import subprocess
mk = file('htdocs/js/MochiKit/MochiKit.js').read()
if len(sys.argv) > 1:
    outf = sys.stdout
else:
    outf = file('htdocs/js/MochiKit/Packed.js', 'w')
VERSION = re.search(
    r"""(?mxs)MochiKit.MochiKit.VERSION\s*=\s*['"]([^'"]+)""",
    mk
).group(1)
if len(sys.argv) > 1:
    SUBMODULES = sys.argv[1:]
else:
    SUBMODULES = map(str.strip, re.search(
        r"""(?mxs)MochiKit.MochiKit.SUBMODULES\s*=\s*\[([^\]]+)""",
        mk
    ).group(1).replace(' ', '').replace('"', '').split(','))
    SUBMODULES.append('MochiKit')
alltext = '\n'.join(
    [file('htdocs/js/MochiKit/%s.js' % m).read() for m in SUBMODULES])

tf = file('htdocs/js/MochiKit/_scratch.js', 'w')
tf.write(alltext)
tf.flush()
p = subprocess.Popen(
    ['java', '-jar', 'scripts/custom_rhino.jar', '-c', tf.name],
    stdout=subprocess.PIPE,
)
print >>outf, """/***

    MochiKit.MochiKit %(VERSION)s : PACKED VERSION

    THIS FILE IS AUTOMATICALLY GENERATED.  If creating patches, please
    diff against the source tree, not this file.

    See <http://mochikit.com/> for documentation, downloads, license, etc.

    (c) 2005 Bob Ippolito.  All rights Reserved.

***/
""" % locals()
shutil.copyfileobj(p.stdout, outf)
outf.write('\n')
outf.flush()
outf.close()
tf.close()
os.remove(tf.name)