rstoner (3.4.0)
Installation
[registries.forgejo]
index = "sparse+ " # Sparse index
# index = " " # Git
[net]
git-fetch-with-cli = truecargo add rstoner@3.4.0 --registry forgejoAbout this package
rstoner
A CLI tool for generating metadata tagging commands for audiobooks.
Overview
rstoner generates shell commands for the tone audiobook metadata tagging tool and the m4b-tool for creating M4B audiobook files.
It processes audiobook directories and outputs ready-to-run commands that can be executed manually or saved to a script.
Installation
From Releases (Recommended)
Download the latest static binary from the releases page:
# Download the binary (replace v3.3.3 with the version you want)
curl -fsSL "https://git.desord.re/eofredj/rstoner/releases/download/v3.3.3/rstoner-x86_64" -o rstoner
# Download the matching checksum and verify
curl -fsSL "https://git.desord.re/eofredj/rstoner/releases/download/v3.3.3/rstoner-x86_64.sha256" -o rstoner-x86_64.sha256
sha256sum -c rstoner-x86_64.sha256
# Make executable and move to PATH
chmod +x rstoner
mv rstoner /usr/local/bin/rstoner
From the Forgejo Cargo Registry
rstoner is published to a private Cargo registry hosted on git.desord.re, not to crates.io. Add the registry to ~/.cargo/config.toml (or the project's .cargo/config.toml), then install:
[registries.forgejo]
index = "sparse+https://git.desord.re/api/packages/eofredj/cargo/"
cargo install rstoner --registry forgejo
Build from Source
git clone https://git.desord.re/eofredj/rstoner.git
cd rstoner
cargo build --release
See CONTRIBUTING.md for static musl builds and other build variants.
Shell Completions and Man Page
# Bash
rstoner --completions bash | sudo tee /etc/bash_completion.d/rstoner > /dev/null
# Zsh
rstoner --completions zsh > "${fpath[1]}/_rstoner"
# Fish
rstoner --completions fish > ~/.config/fish/completions/rstoner.fish
# Man page
rstoner --man | sudo tee /usr/local/share/man/man1/rstoner.1 > /dev/null
Uninstalling
rstoner is a single static binary with no other files installed by default. To remove it:
# Wherever you installed it, e.g.:
rm /usr/local/bin/rstoner
# or, if installed via cargo:
cargo uninstall rstoner
Also remove, if created:
~/.config/rstoner/config.toml(config file, see Configuration)- Any shell completion or man page files installed as shown above
Quick Start
rstoner -a "Author Name" -n "Narrator Name" /path/to/audiobook
Full CLI options, examples, generated output, and directory layout requirements are in the Usage Guide.
Requirements
Run rstoner --check to verify both are installed.
Documentation
| Document | Purpose |
|---|---|
| Usage Guide | Full CLI options, examples, and configuration file |
| Architecture Overview | System design, data flow, and module structure |
| CONTRIBUTING.md | Development setup, style guide, testing, and release process |
| Security Considerations | Shell escaping and the security model |
Security
All user-provided values are shell-escaped to prevent command injection. See Security Considerations for the full model, and SECURITY.md to report a vulnerability.
Contributing
See CONTRIBUTING.md for development setup, style guide, and the contribution workflow. Participation in this project is governed by the Code of Conduct.
License
GPL-3.0-or-later. See LICENSE for the full text.
Dependencies
| ID | Version |
|---|---|
| clap | ^4.6.7 |
| clap_complete | ^4.6.11 |
| clap_mangen | ^0.3.3 |
| colored | ^3.1.1 |
| dirs | ^7.0.0 |
| regex | ^1.13.1 |
| shell-escape | ^0.1 |
| thiserror | ^2.0.20 |
| toml | ^1.1.6 |
| which | ^8.0.6 |
| tempfile | ^3.27.0 |