Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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 versions

Scopes required for [GitHub](https://github.com/settings/tokens?type=beta):

- Repositories
- Contents: read and write

If 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.