intermodal fork (public API)
Go to file
Casey Rodarmor 04338e3501
Merge documentation and changelog generation
Merge documentation generation into a single binary, `bin/gen`. This
includes: The changelog, man pages, the readme, and the book.

type: reform
2020-04-17 21:31:54 -07:00
.github/workflows Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
bin Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
book Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
completions Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
man Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
src Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
tmp Initial commit 2020-04-07 18:55:30 -07:00
www Improve install.sh and documentation 2020-04-09 20:48:43 -07:00
.gitattributes Format with unstable rustfmt options 2020-04-07 19:01:07 -07:00
.gitignore Add description of UDP tracker protocol to book 2020-04-07 19:01:38 -07:00
.ignore Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
build.rs Fix release process issues 2020-04-07 19:01:29 -07:00
Cargo.lock Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
Cargo.toml Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
CHANGELOG.md Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
CONTRIBUTING Initial commit 2020-04-07 18:55:30 -07:00
justfile Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
LICENSE Initial commit 2020-04-07 18:55:30 -07:00
README.md Merge documentation and changelog generation 2020-04-17 21:31:54 -07:00
rustfmt.toml Forbid empty input, output, and path targets 2020-04-07 19:01:43 -07:00

Intermodal: A 40' shipping container for the Internet

Crate Build Book Chat

Intermodal is a user-friendly and featureful command-line BitTorrent metainfo utility. The binary is called imdl and runs on Linux, Windows, and macOS.

At the moment, creation, viewing, and verification of .torrent files is supported.

For more about the project and its goals, check out this post.

demonstration animation

Table of Contents

Installation

Supported Operating Systems

imdl supports Linux, MacOS, and Windows, and should work on other unix OSes. If it does not, please open an issue!

Packages

Operating System Package Manager Package Command
Various Cargo imdl cargo install imdl
Arch Linux Yay intermodalAUR yay -S intermodal

Pre-built binaries

Pre-built binaries for Linux, macOS, and Windows can be found on the releases page.

You can use the following command to download the latest binary for Linux, MacOS, or Windows, just replace DEST with the directory where you'd like to install the imdl binary:

curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash -s -- --to DEST

A good place to install personal binaries is ~/bin, which install.sh uses when --to is not supplied. To create the ~/bin directory and install imdl there, do:

curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash

Additionally, you'll have to add ~/bin to the PATH environment variable, which the system uses to find executables. How to do this depends on the shell.

For sh, bash, and zsh, it should be done in ~/.profile:

echo 'export PATH=$HOME/bin:$PATH' >> ~/.profile

For fish, it should be done in ~/.config/fish/config.fish:

echo 'set -gx PATH ~/bin $PATH' >> ~/.config/fish/config.fish

Cargo

imdl is written in Rust and can be built from source and installed with cargo install imdl. To get Rust, use the rustup installer.

Shell Completion Scripts

Shell completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish are available in the completions directory, included in all binary releases.

For Bash, move imdl.bash to $XDG_CONFIG_HOME/bash_completion or /etc/bash_completion.d/.

For Fish, move imdl.fish to $HOME/.config/fish/completions/.

For the Z shell, move _imdl to one of your $fpath directories.

For PowerShell, add . _imdl.ps1 to your PowerShell profile (note the leading period). If the _imdl.ps1 file is not on your PATH, do . /path/to/_imdl.ps1 instead.

The imdl binary can also generate the same completion scripts at runtime, using the completions command:

$ imdl completions --shell bash > imdl.bash

The --dir argument can be used to write a completion script into a directory with a filename that's appropriate for the shell. For example, the following command will write the Z shell completion script to $fpath[0]/_imdl:

$ imdl completions --shell zsh --dir $fpath[0]

Semantic Versioning

Intermodal follows semantic versioning.

In particular:

  • v0.0.X: Breaking changes may be introduced at any time.
  • v0.X.Y: Breaking changes may only be introduced with a minor version number bump.
  • vX.Y.Z: Breaking changes may only be introduced with a major version number bump

Unstable Features

To avoid premature stabilization and excessive version churn, unstable features are unavailable unless the --unstable / -u flag is passed, for example imdl --unstable torrent create .. Unstable features may be changed or removed at any time.

Source Signatures

All commits to the intermodal master branch signed with Casey Rodarmor's PGP key with fingerprint 3259DAEDB29636B0E2025A70556186B153EC6FE0, which can be found on keybase and on his homepage.

Acknowledgments

The formatting of imdl torrent show is entirely copied from torf, an excellent command-line torrent creator, editor, and viewer.