#! /usr/bin/env python3 import pathlib import re import sys assert len(sys.argv) == 2 MOCHI_PATH = pathlib.Path(sys.argv[1]) assert MOCHI_PATH.suffix == ".html" TEST_PATH = MOCHI_PATH.with_suffix(".solo.html") def read_local_file(include): inc_path = MOCHI_PATH.parent file_path = inc_path / include try: return file_path.read_bytes() except IOError: return b"" SIMPLETEST_REPLACEMENT = b"""
""" INCLUDE_PATTERN = re.compile(b"\\s*") CSS_PATTERN = re.compile( b"]*)['\"]>" ) with open(TEST_PATH, "wb") as fout: with open(MOCHI_PATH, "rb") as fin: for line in fin: skip_line = False for css in CSS_PATTERN.findall(line): skip_line = True print("Ignoring stylesheet: " + css.decode()) for inc in INCLUDE_PATTERN.findall(line): skip_line = True if inc == b"/MochiKit/MochiKit": continue if inc == b"/tests/SimpleTest/SimpleTest": print("Injecting SimpleTest replacement") fout.write(SIMPLETEST_REPLACEMENT) continue inc_js = inc.decode() + ".js" inc_data = read_local_file(inc_js) if not inc_data: print("Warning: Unknown JS file ignored: " + inc_js) continue print("Injecting include: " + inc_js) fout.write(b"\n\n") continue if skip_line: continue fout.write(line) continue