spud

A CLI Spigot plugin manager that adheres to Unix conventions and Python best practices.

GPL-3.0 License

Downloads
116
Stars
11
Committers
1

Spud

The cross-platform, Spigot plugin manager that adheres to the Unix philosophy and Python best practices.

Some focuses of the project are:

  1. Easy and simple commands (updating all your plugins is as simple as spud update)

  2. Adherence to Unix conventions and no forced interactivity, which unlike other options like pluGET, makes Spud easy to use in scripts.

  3. Readability, static type hinting, test-driven development, and consistent styling in the codebase.

  4. Descriptive and greppable output with actionable error messages

Installation

Python 3.8 or later is required

Install with python -m pip install spud-mc

Run spud -h to see all the options.

Example usages

  • Install a plugin: spud install PluginName

  • Install a plugin without prompting for input: spud -n install PluginName

  • Update all plugins in the working directory: spud update

  • Update all plugins in ~/server/plugins: spud -d ~/server/plugins update

  • Update plugin myplugin.jar: spud update myplugin.jar

Known Issues

  • Some resources have lots of filler in the title. e.g. [1.8-1.17] ยท PluginName | ๐Ÿ˜ƒ ๐Ÿ˜ƒ ๐Ÿ˜ƒ | Epic Gaming Moments. Spud tries its best to extract the plugin name, but it will fail if there is copious amounts of garbage in the title

  • Spud can't update plugins it has not installed. Make sure to install the plugin with Spud first, so it can save a metadata file to the jar.

  • Spud can't install resources not listed on https://spigotmc.org

  • Spud can't install premium resources

Setting up a dev environment

git clone [email protected]:exciteabletom/spud

cd spud

python3 -m venv .venv

Bash: . .venv/bin/activate

Windows PowerShell: .venv\bin\activate.ps1

python3 -m pip install -r requirements.txt -r requirements-dev.txt

pre-commit install

Acknowledgements

Logo created by zach_can_draw

Package Rankings
Top 19.03% on Pypi.org
Badges
Extracted from project README
GPLv3 License GitHub Release PyPI downloads Code style: Black