Files
BarotraumaModServer/scripts/autogen_config.py
SlavaVlad 1b55091908
Some checks failed
Build & Deploy / deploy (push) Has been cancelled
init update
2026-06-08 17:37:33 +03:00

40 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
"""Scan LocalMods/ and generate config_player.xml with content packages."""
import os
import sys
import xml.etree.ElementTree as ET
BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MODS_DIR = os.path.join(BASE, "LocalMods")
OUTPUT = os.path.join(BASE, "config_player.xml")
def find_mods():
if not os.path.isdir(MODS_DIR):
return []
return sorted(
d for d in os.listdir(MODS_DIR)
if os.path.isfile(os.path.join(MODS_DIR, d, "filelist.xml"))
)
def build_config(mods):
root = ET.Element("Barotrauma")
cp = ET.SubElement(root, "contentpackages")
ET.SubElement(cp, "corepackage", path="Content/ContentPackages/Vanilla.xml")
reg = ET.SubElement(cp, "regularpackages")
for m in mods:
ET.SubElement(reg, "package", path=f"LocalMods/{m}/filelist.xml")
ET.indent(root)
return ET.tostring(root, encoding="unicode", xml_declaration=True)
if __name__ == "__main__":
mods = find_mods()
print(f"Found {len(mods)} mod(s): {mods}")
xml = build_config(mods)
with open(OUTPUT, "w") as f:
f.write(xml)
print(f"Generated {OUTPUT}")