pack.py
1.32 KB
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
57
58
#!/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('PlotKit/PlotKit.js').read()
if len(sys.argv) > 1:
outf = sys.stdout
else:
outf = file('PlotKit/PlotKit_Packed.js', 'w')
VERSION = re.search(
r"""(?mxs)PlotKit.PlotKit.VERSION\s*=\s*['"]([^'"]+)""",
mk
).group(1)
if len(sys.argv) > 1:
SUBMODULES = sys.argv[1:]
else:
SUBMODULES = map(str.strip, re.search(
r"""(?mxs)PlotKit.PlotKit.SUBMODULES\s*=\s*\[([^\]]+)""",
mk
).group(1).replace(' ', '').replace('"', '').split(','))
alltext = '\n'.join(
[file('PlotKit/%s.js' % m).read() for m in SUBMODULES])
tf = file('_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, """/***
PlotKit.PlotKit %(VERSION)s : PACKED VERSION
THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
diff against the source tree, not this file.
For more information, <http://www.liquidx.net/plotkit/>.
Copyright (c) 2006. Alastair Tse.
***/
""" % locals()
shutil.copyfileobj(p.stdout, outf)
outf.write('\n')
outf.flush()
outf.close()
tf.close()
os.remove(tf.name)