mirror of
https://github.com/ading2210/libcurl.js.git
synced 2025-05-11 13:30:01 -04:00
26 lines
No EOL
838 B
Python
26 lines
No EOL
838 B
Python
import re
|
|
import sys
|
|
import pathlib
|
|
|
|
match_regex = r'/\* (.+?)\n(.+?)\n\*/\n(.*?)(\n\n|$)'
|
|
|
|
fragments_dir = sys.argv[1]
|
|
target_dir = sys.argv[2]
|
|
fragments_path = pathlib.Path(fragments_dir)
|
|
target_path = pathlib.Path(target_dir)
|
|
target_text = target_path.read_text()
|
|
|
|
for fragment_file in fragments_path.iterdir():
|
|
print(f"applying patch from {fragment_file.name}")
|
|
fragment_text = fragment_file.read_text()
|
|
matches = re.findall(match_regex, fragment_text, re.S)
|
|
|
|
for mode, patch_regex, patch_text, _ in matches:
|
|
if mode == "DELETE":
|
|
target_text = re.sub(patch_regex, "", target_text)
|
|
elif mode == "REPLACE":
|
|
target_text = re.sub(patch_regex, patch_text, target_text)
|
|
elif mode == "INSERT":
|
|
target_text = re.sub("("+patch_regex+")", r'\1'+patch_text, target_text)
|
|
|
|
target_path.write_text(target_text) |