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

Download history 79/week @ 2024-04-09 23/week @ 2024-04-16 54/week @ 2024-04-23 28/week @ 2024-04-30 71/week @ 2024-05-07 477/week @ 2024-05-14 466/week @ 2024-05-21 249/week @ 2024-05-28 252/week @ 2024-06-04 403/week @ 2024-06-11 206/week @ 2024-06-18 143/week @ 2024-06-25 451/week @ 2024-07-02 321/week @ 2024-07-09 150/week @ 2024-07-16 91/week @ 2024-07-23

1,028 个月下载量

CC0 许可证

580KB
13K SLoC

Intermodal

互联网的40英尺运输集装箱

crate build book chat

Intermodal 是一个用户友好且功能丰富的命令行 BitTorrent 元信息实用工具。二进制文件名为 imdl,可在 Linux、Windows 和 macOS 上运行。

目前支持创建、查看和验证 .torrent 文件。有关示例和使用信息,请参阅 此书

有关项目和其目标,请参阅 这篇帖子

demonstration animation

目录

安装

支持的操作系统

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。

对于 shbashzsh,应在 ~/.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/gengen构建。

可以使用以下方式构建二进制文件

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