2.8 KiB
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 toadd
, 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 folderold_mods
. If--delete
is passed, it be deleted instead.update_all
Update every mod in the modpack. Notarget
needed. Will prioritize release phases similar toupdate
, however--phase
will will not affect it. By default, the old version of the mod will be moved to another folderold_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 inconfig_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.remove
Removes a mod from the modpack.target
must be the url associated with the mod.--delete
has similar behavior here as noted underupdate
.
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 will be moved to mods_old/
. --delete
may be used to delete these files instead eg. overwrought_slave.py sync --delete
.