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