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.md
bin/gen/templates/README.md
->README.md
bin/gen/templates/introduction.md
->book/src/introduction.md
一些文件是完全生成的,因此不应手动编辑。
CHANGELOG.md
book/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