modetw (Modifications Manager for Empire: Total War) is a utility tool that helps you manage modifications (mods) in Empire: Total War for GNU/Linux. Supported features ================== * All mods will only have latest version * Mod conflict check Planned features ================ * Multiple mod versions Commands ======== * -c --calibrate calibrate the game files for mod installation * -i --install [mod] install a mod * -u --uninstall [mod] uninstall a mod * -q --query [mod (regexpr)] list mods in GitLab * -l --list (installed mods) list ~/.config/etw-lmm/manifest A mod installation runs through the following steps: 1. The game packs that will be installed will be checked for any conflicts. If there is an existing mod installed that is already overtaking an original game pack, the installation cannot continue. 2. The original game packs will be renamed as "*.backup" 3. The modified game packs will be installed. 4. The mod's manifest will be added to the modetw/manifest directory A mod uninstallation runs through the following steps: 1. The modified game packs are deleted. 2. The original game packs will have ".backup" removed. 3. The mod's manifest will be deleted. The list of installed mods are located in the $HOME/.local/modetw/manifest.txt file (text file, listing installed mods with version). XMLs of available mods will be packaged in a tar.xz in a FTP server in the same dir as the mods. $HOME/.local/modetw/db directory will hold all XMLs (including installed). Specifications ============== libcurl libxml2 GNU automake sed iconv cp rm check (only for dev) doxygen (only for dev) argp - argparse Glib conf parsing tar Project structure ================= main.c Contains main function calibrate.c/h Game calibration install.c/h Handles uninstall as well query.c/h Queries FTP server for mods list.c/h Lists installed mods exception.c/h Exception handler file_t.c/h File type md5_t.c/h MD5 hash type prompt_t.c/h Prompt type Mod structure ============= -.tar.xz -.xml -/ manifest.xml common/ A.pack B.pack option/ / C.pack (different contents) / C.pack Manifest XML structure ==================