OnJava8-Examples/update_extracted_example_output.py

36 lines
1.0 KiB
Python
Raw Normal View History

2016-07-22 14:45:35 -06:00
#! py -3
# Requires Python 3.5
# Updates generated output into extracted Java programs in "On Java 8"
from pathlib import Path
import pprint
import sys
def remove_output(javatext):
result = ""
for line in javatext.splitlines():
if "/* Output:" not in line:
result += line.rstrip() + "\n"
else:
return result
def update_file(outfile):
print(str(outfile))
javafile = outfile.with_suffix(".java")
if not javafile.exists():
print(str(outfile) + " has no javafile")
sys.exit(1)
javatext = javafile.read_text()
if "/* Output:" not in javatext:
print(str(javafile) + " has no /* Output:")
sys.exit(1)
new_output = outfile.read_text()
new_javatext = remove_output(javatext) + new_output
javafile.write_text(new_javatext)
if __name__ == '__main__':
if len(sys.argv) > 1:
update_file(Path(sys.argv[1]))
else:
for outfile in Path(".").rglob("*.p1"):
update_file(outfile)