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 命令行工具

MIT/Apache

1.5MB
1K SLoC

一个用于获取命令行工具帮助的 CLI 工具 🐙

GitHub Release Crate Release Coverage
Continuous Integration Continuous Deployment Docker Builds Documentation

halp demo

halp 的目标是通过对预定义的常用选项/标志进行检查,帮助用户找到命令行工具的正确参数。此外,它还提供了一个提示,以便快速访问给定命令的 手册页速查表

如果您经常处理命令行工具,可能需要一些时间才能弄清楚如何获取帮助或检查特定命令的版本(尤其是在没有 shell 完成功能的情况下)。在这种情况下,您可能会尝试最知名的标志,如 -h-v,但不幸的是,并非所有命令行工具都遵循这些约定(要么是因为与其他标志冲突,要么它们使用了另一种形式)。与其手动尝试获取帮助,您可以直接运行 halp <command>,它会为您检查以下参数:

  • 对于 帮助-h--helphelp-H
  • 对于 版本信息-v-V--versionversion

如果这些参数中的任何一个成功(退出代码为 0),它将打印输出并退出。这样,您就可以通过单个命令获取有关版本和帮助的信息。您还可以通过配置文件自定义此列表,或通过命令行参数提供参数列表。

另一方面,如果您 确实 需要帮助,可以使用 plz 子命令,该命令将提示您选择以下操作:

  1. 显示 手册页(运行 man(1)
  2. 显示 速查表(通过 cheat.sh
目录

示例

您是否曾遇到过这种情况

$ 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 ...]

安装

打包状态

Packaging status

Cargo

halp 可以从 crates.io 安装

cargo install halp

最低支持的 Rust 版本是 1.74.1

Arch Linux

halp 可以使用 pacman社区仓库 安装

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

从源码构建

  1. 克隆仓库。
git clone https://github.com/orhun/halp && cd halp/
  1. 构建。
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

示例

检查 helpversion(默认)

halp whoami

halp example I

检查自定义参数

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 example II

自定义分页器
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 格式的配置文件进行配置。它可以通过 --configHALP_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 上支持我或 成为赞助者

Support me on GitHub Sponsors Support me on Patreon Support me on Patreon

贡献

请参阅我们的 贡献指南,并在与项目的所有互动中遵循 行为准则

许可协议

根据您的选择,许可协议为 Apache 许可协议版本 2.0MIT 许可协议

🦀 ノ( º _ º ノ) - 尊重螃蟹!

版权所有 © 2023-2024, Orhun Parmaksız

依赖项

~6–18MB
~237K SLoC