import os
import argparse
from tkinter import Tcl
content_str = """
{datafiles}
-
CCS_BVHPATCH00_INIT
-
{changeset}
{enabled}
"""
filename_str = "{filename}"
enable_str = """
{files}
"""
datafile_str = """-
{filename}
RPF_FILE
"""
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-mp", '--mount_path', metavar='mount:/directory/', type=str, required=True,
help='mount path to use as a base path for the rpfs')
parser.add_argument("-p", '--path', metavar='X:/directory/', type=str, required=True,
help='path to the tiles')
parser.add_argument("-cs", '--changeset', metavar='CCS', type=str, required=True,
help='changeset to load mount the files against')
parser.add_argument("-o", '--output', metavar='X:/directory/', type=str,
help='output directory for content.xml')
args = parser.parse_args()
files = os.listdir(args.path)
files = Tcl().call("lsort", "-dict", files)
print("Adding:\n "+"\n ".join([os.path.join(args.path, f) for f in files]))
filenames = [filename_str.format_map({"filename": args.mount_path+f}) for f in files]
enabled = enable_str.format_map({"files": "\n".join(filenames)})
datafiles = []
for file in filenames:
datafiles.append(datafile_str.format_map({"filename": file}))
content = content_str.format_map(
{
"datafiles": "\n".join(datafiles),
"changeset": args.changeset,
"enabled": enabled
})
file_path = os.path.join(args.output, "content.xml")
with open(file_path, "w") as out:
out.write(content)
print(f"wrote {file_path}")
pass