setage/setage-standalone-gen.py

44 lines
1.6 KiB
Python
Raw Permalink Normal View History

2024-05-21 04:59:26 -04:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from argparse import ArgumentParser, FileType
from base64 import b64encode
__author__ = "Cheri Dawn"
__copyright__ = "Copyright 2024, Cheri Dawn"
__license__ = "GPLv3"
__version__ = "0.2.0"
__maintainer__ = "Cheri Dawn"
__status__ = "Prototype"
if __name__ == "__main__":
parser = ArgumentParser(
description="SETAGE, the Simple Extensible Text Adventure Game Engine")
parser.add_argument("file", nargs="?", default="manifest.setage",
type=FileType("r"),
help="The manifest.setage file "
"to generate a script for.")
parser.add_argument("template", nargs="?",
default="setage-standalone.py.template",
type=FileType("r"),
help="The template for the script.")
parser.add_argument("output", nargs="?", default="setage-standalone.py",
type=FileType("w"),
help="The output file.")
args = parser.parse_args()
print(f"Reading manifest '{args.file.name}'...")
data = args.file.read()
print(f"Read manifest '{args.file.name}'.")
print(f"Reading template '{args.template.name}'...")
template = args.template.read()
print(f"Read template '{args.template.name}'.")
out = template.replace("{{data}}",
b64encode(data.encode("utf-8")).decode("utf-8"))
print(f"Writing output '{args.output.name}'...")
output = args.output.write(out)
print(f"Wrote output '{args.output.name}'.")