Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diacritics-owo/axolotl
A CLI tool for mod distribution
https://github.com/diacritics-owo/axolotl
Last synced: 8 days ago
JSON representation
A CLI tool for mod distribution
- Host: GitHub
- URL: https://github.com/diacritics-owo/axolotl
- Owner: diacritics-owo
- License: mit
- Created: 2024-09-05T07:25:24.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-09-05T10:59:41.000Z (2 months ago)
- Last Synced: 2024-10-06T17:34:53.720Z (about 1 month ago)
- Language: Rust
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Axolotl
A CLI tool for mod distribution
## Table of Contents
- [Axolotl](#axolotl)
- [Table of Contents](#table-of-contents)
- [Getting Started](#getting-started)
- [Setup](#setup)
- [Using](#using)
- [Publishing](#publishing)
- [Encryption](#encryption)
- [Enabling](#enabling)
- [Disabling](#disabling)## Getting Started
To install Axolotl, first install `cargo` and run `cargo install axolotl-cli`. The `axolotl` command should now be available.
## Setup
> Axolotl currently supports Modrinth and GitHub Releases; Curseforge support is not planned.
Create personal access tokens (PATs) for whichever of the following you plan to distribute to:
Scopes required for [Modrinth](https://modrinth.com/settings/pats):
- Read projects
- Create versionsScopes required for [GitHub](https://github.com/settings/tokens?type=beta):
- Repositories
- Contents: read and writeIf you chose to use Modrinth, run `axolotl key set modrinth` (or `axolotl k s m`) and enter your Modrinth PAT. If you chose to use GitHub, run `axolotl key set github` (or `axolotl k s g`) and enter your GitHub PAT.
To remove a key, run `axolotl key remove ` (or `axolotl k r )`. It will be permanently removed.
## Using
At the root of the project you want to distribute, run `axolotl mod init` (or `axolotl m i`). This should create an `axolotl.toml` file. This is the format and default content:
```toml
[artifact] # required
folder = "build/libs" # required; the folder with the build artifact
pattern = "mod-#.jar" # required; the artifact file name (# will be replaced with the version)
game_versions = ["1.xx"] # required; the supported minecraft versions
loaders = ["fabric", "quilt", "forge", "neoforge"] # required; the supported modloaders[changelog] # optional
type = "editor" # required; "editor" (prompt to open an editor when publishing) or "file" (use the contents of a file)
# file = "path/to/file.md" - required if type is "file"[modrinth] # optional
id = "modrinth project id" # required; the modrinth project id of the target project
featured = true # optional (default true); whether the new version should be featured[[modrinth.dependencies]] # optional (may be present multiple times)
id = "P7dR8mSH" # required; the modrinth project id of the dependency (this one is fabric-api)
dependency_type = "required" # required; one of "required", "optional", "incompatible", or "embedded"[github] # optional
repo = ["user", "repo"] # required; the target repository
draft = true # optional (default true); whether the release should be marked as a draft to review before publishing
```Note that Modrinth project IDs may be found on a project page with the three dots > Copy ID.
### Publishing
To publish your mod, run `axolotl mod publish` (or `axolotl m p`).
## Encryption
Keys are stored in plaintext by default, but they may be encrypted with a passphrase (using [age](https://crates.io/crates/age)). Encryption makes most operations slower to start up, as keys need to be decrypted, but it provides **much** greater security.
### Enabling
Run `axolotl keys encryption enable` (or `axolotl k e e`). You will be prompted to create a passphrase - this passphrase will be requested when any action requiring the decryption of the keys is done.
### Disabling
Run `axolotl keys encryption disable` (or `axolotl k e d`). You will be prompted for your passphrase.