A package manager for Minecraft modpacks.
Go to file
2019-06-15 14:39:21 -04:00
.gitignore added overwrought_slave.py 2019-06-03 08:29:03 -04:00
config_master.py.template added overwrought_slave.py 2019-06-03 08:29:03 -04:00
config_server.py.template documentation 2019-06-05 11:11:17 -04:00
config_slave.py.template added overwrought_slave.py 2019-06-03 08:29:03 -04:00
overwrought_master.py truncate changelog respects action now 2019-06-15 12:44:58 -04:00
overwrought_server.py password hash utility uses getpass() 2019-06-03 07:04:50 -04:00
overwrought_slave.py slave remembers previous modlist 2019-06-15 14:39:21 -04:00
README.md documentation 2019-06-05 11:11:17 -04:00
template.html first commit 2019-06-02 15:27:13 -04:00

Overwrought

It manages Minecraft modpacks.

Requirements

Python 3.6+

Master

Python packages: requests bs4

Server

Python packages: flask gunicorn passlib argon2_cffi

Slave

Python packages:

Usage

Master

Copy overwrought_master.py and the matching config file to your .minecraft/ folder. Edit the config file appropriately.
overwrought_master.py action [options] [target]
actions

  • add Add a new mod to the modpack. target must be a url to a curseforge mod project page. By default, it will prioritize release phases as Release, Beta and then Alpha. --phase can alter this. Will always grab the latest version of whichever phase it targets.
  • add_all Add a list of mods to the modpack. target must be a file containing a newline-delineated list of curseforge mod project page urls. Will prioritize release phases similar to add, however --phase will not affect it.
  • update Update a specific mod in the modpack. target must be the url associated with the mod. By default, it will prioritize the release phase previously added. --phase can alter this. Will only update if the targeted mod is more recent than the one previously downloaded. By default, the old version of the mod will be moved to another folder old_mods. If --delete is passed, it be deleted instead.
  • update_all Update every mod in the modpack. No target needed. Will prioritize release phases similar to update, however --phase will will not affect it. By default, the old version of the mod will be moved to another folder old_mods. If --delete is passed, it be deleted instead.
  • summary Generate a summary page as html. Summary page displays a list of all mods in the modpack and a change log that is updated as changes are made to the modpack.
  • post Upload the modpack so the remote server specified in config_master.py. Note that only mods not currently on the server, or which are of a different version, are sent. A copy of the current database and summary page is also sent.

Server

gunicorn -b localhost:5000 -e SCRIPT_NAME=/overwrought overwrought_server:app
Use overwrought_server.py hash to generate an Argon2 hash of your password. Update config_server.py appropriately.

Slave

Copy overwrought_slave.py and the matching config file to your .minecraft/ folder. Edit the config file appropriately.
Use overwrought_slave.py sync to synchronize the mods/ folder with the remote server.
By default, old versions of mods (and any other non-modpack related file found in the mods/ folder) will be moved to mods_old/. --delete may be used to delete these files instead eg. overwrought_slave.py sync --delete.