michael@0: import sys michael@0: import os.path michael@0: import re michael@0: michael@0: assert len(sys.argv) == 2 michael@0: mochiPath = sys.argv[1] michael@0: michael@0: extDotPos = mochiPath.find('.html') michael@0: assert extDotPos != -1, 'mochitest target must be an html doc.' michael@0: michael@0: testPath = mochiPath[:extDotPos] + '.solo.html' michael@0: michael@0: def ReadLocalFile(include): michael@0: incPath = os.path.dirname(mochiPath) michael@0: filePath = os.path.join(incPath, include) michael@0: michael@0: data = None michael@0: try: michael@0: f = open(filePath, 'r') michael@0: data = f.read() michael@0: except: michael@0: pass michael@0: michael@0: try: michael@0: f.close() michael@0: except: michael@0: pass michael@0: michael@0: return data michael@0: michael@0: kSimpleTestReplacement = '''\n michael@0: michael@0:
michael@0: \n''' michael@0: michael@0: fin = open(mochiPath, 'r') michael@0: fout = open(testPath, 'w') michael@0: includePattern = re.compile('') michael@0: cssPattern = re.compile(']*)[\'"]>') michael@0: for line in fin: michael@0: skipLine = False michael@0: for css in cssPattern.findall(line): michael@0: skipLine = True michael@0: print('Ignoring stylesheet: ' + css) michael@0: michael@0: for inc in includePattern.findall(line): michael@0: skipLine = True michael@0: if inc == '/MochiKit/MochiKit': michael@0: continue michael@0: michael@0: if inc == '/tests/SimpleTest/SimpleTest': michael@0: print('Injecting SimpleTest replacement') michael@0: fout.write(kSimpleTestReplacement); michael@0: continue michael@0: michael@0: incData = ReadLocalFile(inc + '.js') michael@0: if not incData: michael@0: print('Warning: Unknown JS file ignored: ' + inc + '.js') michael@0: continue michael@0: michael@0: print('Injecting include: ' + inc + '.js') michael@0: fout.write('\n\n'); michael@0: continue michael@0: michael@0: if skipLine: michael@0: continue michael@0: michael@0: fout.write(line) michael@0: continue michael@0: michael@0: fin.close() michael@0: fout.close()