In the discussion of a nag feature (here) I speculated about Multitool, a new thing that users could download that would check for various mafia preconditions. My original vision was a shell script that only used native OS commands and there would be one each for *nix, Mac and Windows. A suggestion was made to build it in Java and target Multitool for a very old version (VOV) of Java. A user would download Multitool. If it didn't run then the user either had no Java installed or something older then VOV. If it ran then it would check and report some conditions. Then someone suggested Multitool could be a launcher . A user would download Multitool, it would check Java and KolMafia versions and if they were compatible then launch mafia.
Multitool needs to be in the same directory as KoLmafia (or in a directory that would have KoLmafia downloaded into it). Multitool would assume naming conventions that allowed a version number to be extracted from a file name for Multitool and KoLmafia. Version numbers would be assumed to be monotonically increasing with time. The lower version number corresponded to the older version. It is hoped that the environment Multitool runs in is identical to the environment the user expects mafia to run in and that parameters derived from Multitool execution apply to mafia.
For the first phase, Multitool would access a remote data source (GitHub, kolmafia.us?) and determine the latest version of Multitool, KolMafia and the lowest Java version needed to run mafia. It would then tell the user whether those were acceptable and make the user address the issues manually.
The next phase would add an option to download latest Multitool and KoLmafia versions and confirm that the current user could write to the current directory.
After that the next feature added would be to delete all but the latest versions of Multitool and KoLmafia.
The final phase would for Multitool to offer the option to launch the latest version of mafia and exit.
When the above work is done then there are some obvious enhancements such allowing multiple versions of mafia and some kind of preference settings so that launching Multitool would get the latest versions, purge, (anyone else remember VAX/VMS?) and launch mafia.
I have some simple code working, with lots of things hardwired that allows Multitool to launch KoLmafia and exit.
So, is Multitool a separate project and download or do we try and include it in KoLmafia?
If the former then I need help in setting up a GitHub project (licensing, workflows, testing, users etc.) and a build environment that uses a very old version.
If the latter then I need help making it so one Java file is compiled to it will run on a very old version. I need advice on whether Multitool is always present or whether a user launching KolMafia directly will get the "old" behavior.
Thoughts? Comments? Suggestions? Offers of help?
Multitool needs to be in the same directory as KoLmafia (or in a directory that would have KoLmafia downloaded into it). Multitool would assume naming conventions that allowed a version number to be extracted from a file name for Multitool and KoLmafia. Version numbers would be assumed to be monotonically increasing with time. The lower version number corresponded to the older version. It is hoped that the environment Multitool runs in is identical to the environment the user expects mafia to run in and that parameters derived from Multitool execution apply to mafia.
For the first phase, Multitool would access a remote data source (GitHub, kolmafia.us?) and determine the latest version of Multitool, KolMafia and the lowest Java version needed to run mafia. It would then tell the user whether those were acceptable and make the user address the issues manually.
The next phase would add an option to download latest Multitool and KoLmafia versions and confirm that the current user could write to the current directory.
After that the next feature added would be to delete all but the latest versions of Multitool and KoLmafia.
The final phase would for Multitool to offer the option to launch the latest version of mafia and exit.
When the above work is done then there are some obvious enhancements such allowing multiple versions of mafia and some kind of preference settings so that launching Multitool would get the latest versions, purge, (anyone else remember VAX/VMS?) and launch mafia.
I have some simple code working, with lots of things hardwired that allows Multitool to launch KoLmafia and exit.
So, is Multitool a separate project and download or do we try and include it in KoLmafia?
If the former then I need help in setting up a GitHub project (licensing, workflows, testing, users etc.) and a build environment that uses a very old version.
If the latter then I need help making it so one Java file is compiled to it will run on a very old version. I need advice on whether Multitool is always present or whether a user launching KolMafia directly will get the "old" behavior.
Thoughts? Comments? Suggestions? Offers of help?