I really haven't studied how Goober's installer works... but how can it perform install/upgrades/checks without using a VP files list ? Isn't it supposed to handle dependencies ?
Correct me if I'm wrong, but I'm under the impression that Goober's installer is "action oriented" (download that file, add this folder, remove that stuff) while my script is "description oriented" (this is how a functioning mod looks like, then the script does whatever is needed to get to this state)
Now I'm worried I did something completely inefficient... I already knew it from a disk space point of view, as Goober's installer downloads and unzip files at the same time, while my script creates a cache of archives.
My primary concern with auto adding new repositories, even with a nice warning window, is that people say yes to nearly anything. I'd prefer a safer process, like people having to go to some settings screen -> add repository -> copy and paste the url there.
Anyway, to advance towards a "One-click" mod install/launch process, we would need 3 pieces of software client side :
- a fs2 protocol handler, knowing which mod is installed and which one is not (and start the appropriate action).
- a mod installer : either some modified version of Goober's installer (it would need to get a flag passed by the fs2 protocol handler, with the name of target mod), or some cross platform version of my script connected to a default repository of fs2mod files, and able to connect to user added repositories.
- a mod launcher : either a modified version of wxlauncher, skipping all the GUI part, and using the last options profile used with the mod called by fs2 protocol handler, or a new lightweight launcher (only managing fs2_open flags, per mod).
Server side :
- a new HTML5+CSS3 GUI viewable from any browser, connected to FreeSpace mod database, with the appropriate fs2:// links. I wonder if optional extras for mods (compatibility packages, advanced graphics) would have to be handled by the protocol on the web GUI side (checkboxes on the mod page, a bit like DLCs on Steam) or by the mod installer script GUI (checkboxes in the mod installation confirmation window opening after clicking on a fs2:// link)
And, as optional but interesting extras :
- a standalone, offline, mod browser. A simple Webkit/python window showing installed mods even offline, without using a full blown browser, in order not to be dependent from HLP being online to launch FreeSpace 2 and its mods.
- a dedicated installer, bundling all previous pieces of software together.
It's not that much work, for example, for example, a basic version of the standalone browser I dashed was 15 lines of python code, the protocol handler is only a few lines too, the online and offline HTML5+CSS3 GUIs would be based on the same template (I already have a working example, although incomplete and not ready for production), and if we can use Goober's installer and wxlauncher stripped from parts of their GUI, it would only be small patches.
The biggest parts would be the preprocessor (PHP, Java, Python, whatever else) to generate the mod catalogue from the mod DB using enhanced versions of my templates, porting my script to a cross platform python utility if we chose this solution, and creating a lightweight launcher/settings window.