18 个版本
| 0.1.13 | 2023年8月20日 |
|---|---|
| 0.1.12 | 2020年10月3日 |
| 0.1.11 | 2020年9月7日 |
| 0.1.10 | 2020年6月24日 |
| 0.0.0 | 2019年6月3日 |
#1 in #torrent
1,028 个月下载量
580KB
13K SLoC
Intermodal
Intermodal 是一个用户友好且功能丰富的命令行 BitTorrent 元信息实用工具。二进制文件名为 imdl,可在 Linux、Windows 和 macOS 上运行。
目前支持创建、查看和验证 .torrent 文件。有关示例和使用信息,请参阅 此书。
有关项目和其目标,请参阅 这篇帖子。

目录
安装
支持的操作系统
imdl 支持 Linux、MacOS 和 Windows,应可在其他 Unix OS 上运行。如果不行,请提交问题!
软件包
| 操作系统 | 包管理器 | 包 | 命令 |
|---|---|---|---|
| 各种 | Cargo | imdl | cargoinstall imdl |
| Arch Linux | Yay | intermodal-binAUR | yay-S intermodal-bin |
| Arch Linux | Yay | intermodalAUR | yay-S intermodal |
| Arch Linux | 手动安装 | intermodalAUR | wiki |
| Void Linux | XBPS | intermodal | xbps-install-S intermodal |
| Windows | Scoop | intermodal | scoop install intermodal |
预构建的二进制文件
Linux、MacOS 和 Windows 的预构建二进制文件可在 发布页面 上找到。
Linux 和 MacOS 安装脚本
您可以在 Linux 和 MacOS 上使用以下命令下载最新二进制文件,只需将 DEST 替换为您希望安装 imdl 二进制文件的目录
curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash -s -- --to DEST
安装个人二进制文件的好地方是 ~/bin,当不提供 --to 时,install.sh 就会使用它。要创建 ~/bin 目录并在其中安装 imdl,请执行以下操作:
curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash
此外,您还需要将 ~/bin 添加到 PATH 环境变量中,系统使用该变量来查找可执行文件。具体如何操作取决于所使用的 shell。
对于 sh、bash 和 zsh,应在 ~/.profile 中进行操作。
echo 'export PATH=$HOME/bin:$PATH' >> ~/.profile
对于 fish,应在 ~/.config/fish/config.fish 中进行操作。
echo 'set -gx PATH ~/bin $PATH' >> ~/.config/fish/config.fish
Cargo
imdl 是用 Rust 编写的,可以从源代码构建并使用 cargo install imdl 安装。要获取 Rust,请使用 rustup 安装程序。
Shell 完成脚本
Bash、Zsh、Fish、PowerShell 和 Elvish 的 shell 完成脚本包含在所有 二进制发布版 中。
对于 Bash,将 imdl.bash 移动到 $XDG_CONFIG_HOME/bash_completion 或 /etc/bash_completion.d/。
对于 Fish,将 imdl.fish 移动到 $HOME/.config/fish/completions/。
对于 Z shell,将 _imdl 移动到您的 $fpath 目录之一。
对于 PowerShell,将 . _imdl.ps1 添加到您的 PowerShell 配置文件(注意前面的点)。如果 _imdl.ps1 文件不在您的 PATH 中,则使用 . /path/to/_imdl.ps1 代替。
imdl 二进制文件还可以在运行时生成相同的完成脚本,使用 completions 命令。
$ imdl completions --shell bash > imdl.bash
可以使用 --dir 参数将完成脚本写入一个具有适合 shell 的文件名的目录。例如,以下命令将 Z shell 完成脚本写入 $fpath[0]/_imdl
$ imdl completions --shell zsh --dir $fpath[0]
用法
在线文档可在本书中找到,托管于 此处。
命令
将 --help 添加到任何命令中都会打印有关如何使用该命令的帮助文本,包括它接受的任何命令行参数的详细信息。
因此,要获取有关 imdl torrent create 的信息,请运行 imdl torrent create --help。
此外,相同的服务文本在网上也可在 本书 中找到。
示例
本书的简介包含一些简单的示例。有关更复杂的用法示例,请查看 常见问题解答。
常见问题解答
常见问题解答(FAQ)涵盖了各种特定用例。如果您认为应该包含某个用例,请随时在GitHub上提交一个问题。
打包者注意事项
首先,非常感谢!如果您有任何使Intermodal打包更容易的方法,请毫不犹豫地提交一个问题。
Intermodal的二进制文件名为imdl,建议的包名为intermodal。
Intermodal是用Rust编写的,可以使用cargo build --release进行构建。
Intermodal遵循Creative Commons Zero协议,这是一个公共领域奉献,附带一个默认的完全许可协议。CC0的SPDX标识符为CC0-1.0。
构建工件
存在多个构建工件:二进制文件、手册页、更改日志和shell完成脚本。
二进制文件使用cargo构建,其他工件使用位于bin/gen的gen构建。
可以使用以下方式构建二进制文件
cargo build --release
gen需要安装help2man,该工具用于从子命令--help字符串生成手册页。
其余的构建工件可以使用gen构建
cargo run --package gen -- --bin target/release/imdl all
应使用--bin标志将构建的imdl可执行文件的路径传递给gen。
运行上述命令后,以下表格显示了构建工件的位置。
| 工件 | 位置 |
|---|---|
| 二进制文件 | target/release/imdl |
| 手册页 | target/gen/man/* |
| 完成脚本 | target/gen/completions/* |
| 更改日志 | target/gen/CHANGELOG.md |
| 自述文件 | target/gen/README.md |
发布更新
如果您想在新版本发布时收到更新,可以在“仅发布”模式下监视intermodal存储库。
聊天
主要聊天在Discord上。
贡献
您的错误报告、功能请求、拉取请求和设计帮助非常受欢迎!
查看带有“良好入门问题”标签的问题以获取一些想法。
许多文件由程序在bin/gen中生成。一些文件是从模板生成的,因此应编辑这些模板以更改这些文件。
bin/gen/templates/SUMMARY.md->book/src/SUMMARY.mdbin/gen/templates/README.md->README.mdbin/gen/templates/introduction.md->book/src/introduction.md
一些文件是完全生成的,因此不应手动编辑。
CHANGELOG.mdbook/src/commands/*completions/*man/*
可以通过运行cargo run --package gen all或(如果您已安装just)运行just gen来重新生成所有文件。
更改日志是从提交消息中的YAML元数据生成的。以下是一个带有元数据的示例提交消息。
Upgrade foo
Upgrade foo to v7.5, which is much better.
type: changed
pr:
- https://github.com/casey/intermodal/pull/1
fixes:
- https://github.com/intermodal/issues/2
- https://github.com/intermodal/issues/3
唯一必填字段是 type。要查看 type 的可能值,运行 cargo run --package gen commit-types。
基准测试
可以使用以下命令运行性能基准测试
$ cargo bench --features bench
使用的基准框架是 criterion。
基准目标本身位于 benches 目录中。这些目标调用位于 src/benches.rs 中的基准测试函数,只有当启用 bench 功能时才会启用。
语义版本控制
Intermodal 遵循 语义版本控制。
特别是
- v0.0.X: 任何时间都可能引入破坏性更改。
- vX.X.Y: 只能通过增加次要版本号来引入破坏性更改。
- vX.Y.Z: 只能通过增加主要版本号来引入破坏性更改
不稳定功能
为了避免过早的稳定化和版本频繁变动,除非通过 --unstable / -u 标志传递,否则不稳定的功能不可用,例如 imdl --unstable torrent create .。不稳定的功能可以在任何时候更改或删除。
鸣谢
imdl torrent show 的格式完全复制自 torf,一个优秀的命令行种子创建器、编辑器和查看器。
依赖项
~14–26MB
~381K SLoC