Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/afcms/minetest-collection-manager
WIP
https://github.com/afcms/minetest-collection-manager
minetest python python-rich
Last synced: about 1 month ago
JSON representation
WIP
- Host: GitHub
- URL: https://github.com/afcms/minetest-collection-manager
- Owner: AFCMS
- License: gpl-3.0
- Created: 2023-06-23T10:27:15.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-11-17T12:35:18.000Z (12 months ago)
- Last Synced: 2024-10-09T22:20:12.264Z (about 1 month ago)
- Topics: minetest, python, python-rich
- Language: Python
- Homepage:
- Size: 180 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Minetest Collection Manager
![Screenshot](screenshot.png)
This project aims to help maintaining a collection of Minetest content (mods, games, etc) outside a Minetest user
directory. It allows sharing this collection with multiple Minetest installs.You just need to provide a JSON config file containing which ContentDB and Git packages you want and an output folder
and it will clone and update everything. It will be also able to sync with a specific folder with your own development
stuff.**It is done with the idea that all the mods _must_ be updated when possible. It is suitable for personnal collection if
you stay updated to latest Minetest versions, not for maintaining servers.**## Installation
Make sure to have Python3 and PIP installed (tested with version 3.10 and above)
Go to the source code folder:
```shell
pip3 install -r requirements.txt
```Then you can run the script:
```shell
python3 ./main.py --help
```Usage exemples:
```shell
# Create a configuration file
# schema: the "$schema" JSON tag will be filled with the absolute path of the JSON schema (will not be updated if the script is moved around)
# auto-sort: the entries in the config file are automatically sorted alphabetically when modified from CLI
python3 ./main.py create-config ./config_file.json --schema --auto-sort# Add a package to the config file
# The package is a mod and uses git
# This only modify the config file, mod isn't downloaded
# The availlable package categories are: "mods", "client_mods", "games", "texture_packs"
python3 ./main.py add-package ./config_file.json mods git https://notabug.org/tenplus1/bonemeal# Add a package to the config file and sort the entries (useful when autosort disabled)
python3 ./main.py add-package ./config_file.json mods git https://github.com/AFCMS/Subway-Miner --sort# Add a Git package to the config file and pull from specific branch
python3 ./main.py add-package ./config_file.json mods git https://github.com/AFCMS/Subway-Miner --git-remote-branch=other_branch# Add a package from CDB (work with any up-to-date instances)
python3 ./main.py add-package ./config_file.json mods cdb https://content.minetest.net/packages/davidthecreator/rangedweapons# Remove a package from the config file
python ./main.py remove-package ./config.json mods git https://notabug.org/tenplus1/bonemeal# Update the collection folder with the config file
# Packages that are present will be updated (including submodules for Git repositories)
# Other packages will be cloned/downloaded
# If any package has been removed from the config file, it's folder WONT BE REMOVED and should be done by hand
python3 ./main.py update ./config_file.json ~/minetest_collection# Sync a collection folder with a Minetest installation
# Will symlink folders from the collection folder to the Minetest installation
# Will report folders that cannot be symlinked without removing existing folder
python3 ./main.py sync ~/minetest_collection ~/.minetest# Sync a development folder with a collection folder
# Will symlink folders from the development folder to the collection folder
# You will need to run the sync command to update your Minetest installs
python3 ./main.py sync-dev ~/minetest_collection ~/minetest_development
```