mirror of
https://github.com/cesanta/mongoose.git
synced 2024-11-24 19:19:00 +08:00
c9721d4d7f
PUBLISHED_FROM=f7fb01509b3f3982724cc3b05e357d8dd385a546
44 lines
1.1 KiB
Python
Executable File
44 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import sys
|
|
import re
|
|
import os
|
|
|
|
cur_src = None
|
|
in_mod = False
|
|
ofile = None
|
|
|
|
strip_re = re.compile(r'/\* Amalgamated: (.*) \*/')
|
|
def clean(l):
|
|
return strip_re.sub(r'\1', l)
|
|
|
|
manifest = []
|
|
fname = sys.argv[1]
|
|
with open(fname) as f:
|
|
for l in f:
|
|
if re.match('#ifdef .*_MODULE_LINES', l):
|
|
l = next(f)
|
|
g = re.match(r'#line [01] "(.*)"', l)
|
|
cur_src = g.group(1)
|
|
|
|
# if there is currently opened file, close it
|
|
if ofile:
|
|
ofile.close()
|
|
|
|
cur_src = re.sub(r'\.\./', '', cur_src)
|
|
|
|
# create directory for the next file if needed
|
|
cur_src_dir = os.path.dirname(cur_src)
|
|
if cur_src_dir != '' and not os.path.exists(cur_src_dir):
|
|
os.makedirs(cur_src_dir)
|
|
|
|
# open next file for writing
|
|
ofile = open(cur_src, "w")
|
|
print >>sys.stderr, '=> %s' % cur_src
|
|
manifest.append(cur_src)
|
|
next(f)
|
|
elif ofile:
|
|
ofile.write(clean(l))
|
|
|
|
m = open('%s.manifest' % os.path.basename(fname), 'w')
|
|
print >>m, '\n'.join(manifest)
|