11 个版本
0.2.0 | 2024年6月20日 |
---|---|
0.1.7 | 2023年6月17日 |
0.1.6 | 2023年4月18日 |
0.1.4 | 2023年3月17日 |
#157 in 命令行工具
1.5MB
1K SLoC
halp
的目标是通过对预定义的常用选项/标志进行检查,帮助用户找到命令行工具的正确参数。此外,它还提供了一个提示,以便快速访问给定命令的 手册页 或 速查表。
如果您经常处理命令行工具,可能需要一些时间才能弄清楚如何获取帮助或检查特定命令的版本(尤其是在没有 shell 完成功能的情况下)。在这种情况下,您可能会尝试最知名的标志,如 -h
和 -v
,但不幸的是,并非所有命令行工具都遵循这些约定(要么是因为与其他标志冲突,要么它们使用了另一种形式)。与其手动尝试获取帮助,您可以直接运行 halp <command>
,它会为您检查以下参数:
- 对于 帮助:
-h
,--help
,help
,-H
- 对于 版本信息:
-v
,-V
,--version
,version
如果这些参数中的任何一个成功(退出代码为 0),它将打印输出并退出。这样,您就可以通过单个命令获取有关版本和帮助的信息。您还可以通过配置文件自定义此列表,或通过命令行参数提供参数列表。
另一方面,如果您 确实 需要帮助,可以使用 plz
子命令,该命令将提示您选择以下操作:
目录
示例
您是否曾遇到过这种情况
$ cli_tool -v
unknown flag -v
$ cli_tool -V
unknown flag -V
$ cli_tool -h
unknown flag -h
$ asdjw1jwhdajh1idojad # frustration
bash: asdjw1jwhdajh1idojad: command not found
$ cli_tool --help # f*cking finally!
Some CLI Tool Version 1.42.69
Usage:
cli_tool <flags> <args> [--parameter1 value1 --parameter2 value2 ...]
而使用 halp
的情况下
$ halp cli_tool
(°ロ°) checking 'cli_tool -v'
(×﹏×) fail '-v' argument not found.
(°ロ°) checking 'cli_tool -V'
(×﹏×) fail '-V' argument not found.
(°ロ°) checking 'cli_tool -h'
(×﹏×) fail '-h' argument not found.
(°ロ°) checking 'cli_tool --help'
\(^ヮ^)/ success '--help' argument found!
Some CLI Tool Version 1.42.69
Usage:
cli_tool <flags> <args> [--parameter1 value1 --parameter2 value2 ...]
安装
Cargo
halp
可以从 crates.io 安装
cargo install halp
最低支持的 Rust 版本是 1.74.1
。
Arch Linux
pacman -S halp
或者,您可以使用 AUR helper 安装可用的 AUR 软件包。例如,
paru -S halp-git
或者,您可以克隆 AUR 软件包,然后使用 makepkg 构建。例如,
git clone https://aur.archlinux.org/halp-git.git && cd halp-git && makepkg -si
Docker
镜像
Docker 构建 自动化,并且图像在以下注册表中可用
使用
以下命令可以用于获取容器内二进制文件的帮助
docker run --rm -it "orhunp/halp:${TAG:-latest}" whoami
docker run --rm -it "orhunp/halp:${TAG:-latest}" plz whoami
或者,您可以按如下方式提供自定义的二进制文件(请注意,您可能会遇到共享库错误)
docker run -v "bin:/app/bin:rw" --rm -it "orhunp/halp:${TAG:-latest}" -v ./bin
构建
可以基于 Dockerfile 构建。
docker build -t halp .
二进制发行版
请查看 发行页面 上不同目标可用的可用二进制文件。它们通过 持续部署工作流 自动化。
发行存档文件使用以下 PGP 密钥签名: 0xFB41AE0358378256
从源码构建
- 克隆仓库。
git clone https://github.com/orhun/halp && cd halp/
- 构建。
CARGO_TARGET_DIR=target cargo build --release
二进制文件将位于 target/release/halp
。
使用
halp [OPTIONS] <CMD>
Options:
--check <ARG> Sets the argument to check
--no-version Disable checking the version information
--no-help Disable checking the help information
-c, --config <PATH> Sets the configuration file [env: HALP_CONFIG=]
-t, --timeout <S> Sets the timeout for the command [default: 5]
-v, --verbose Enables verbose logging
-h, --help Print help
-V, --version Print version
plz
halp [OPTIONS] plz <CMD>
Options:
-m, --man-cmd <MAN_CMD> Sets the manual page command to run
--cheat-sh-url <URL> Use a custom URL for cheat.sh [env: CHEAT_SH_URL=]
-p, --pager <PAGER> Sets the pager to use
--no-pager Disables the pager
-h, --help Print help
示例
检查 help
和 version
(默认)
halp whoami
检查自定义参数
halp --check "\--silent" zps
(您可以使用 \-
来转义 -
。)
您还可以按如下方式提供多个参数
halp --check "help" --check "test" menyoki
禁用默认设置
halp --no-version sha512sum
halp --no-help sha512sum
详细日志记录
halp --verbose git-cliff
如果出现错误,这将导致打印 stderr
/stdout
。例如
(°ロ°) checking 'git-cliff -v'
(×﹏×) fail '-v' argument not found.
(o_O) debug
stdout:
WARN git_cliff > "cliff.toml" is not found, using the default configuration.
ERROR git_cliff > Git error: `could not find repository from '.'; class=Repository (6); code=NotFound (-3)`
获取更多帮助(通过 plz
)
halp plz vim
自定义分页器
halp plz --pager bat vim
要禁用分页器
halp plz --no-pager bat vim
自定义 cheat.sh 主机 URL
halp plz --cheat-sh-url https://cht.sh vim
配置
halp
可以使用 TOML 格式的配置文件进行配置。它可以通过 --config
或 HALP_CONFIG
环境变量指定。它还可以放置在以下全局位置之一
<config_dir>
/
halp.toml
<config_dir>
/
halp/halp.toml
<config_dir>
/
halp/config
<config_dir>
的值取决于平台,如下表所示
平台 | 值 | 示例 |
---|---|---|
Linux | $XDG_CONFIG_HOME 或 $HOME /.config |
/home/orhun/.config |
macOS | $HOME /Library/Application Support |
/Users/Orhun/Library/Application Support |
Windows | {FOLDERID_RoamingAppData} |
C:\Users\Orhun\AppData\Roaming |
查看默认配置值,请参阅 halp.toml。
资助
如果您在我的 GitHub 个人资料 上找到 halp
和/或其他项目有用,请考虑在 GitHub Sponsors 上支持我或 成为赞助者!
贡献
请参阅我们的 贡献指南,并在与项目的所有互动中遵循 行为准则。
许可协议
根据您的选择,许可协议为 Apache 许可协议版本 2.0 或 MIT 许可协议。
🦀 ノ( º _ º ノ) - 尊重螃蟹!
版权
版权所有 © 2023-2024, Orhun Parmaksız
依赖项
~6–18MB
~237K SLoC