#confirm #preexec #zsh-hook

bin+lib preexec_confirm

一个 zsh 中间件,强制用户在执行带有预配置文本/正则表达式的命令之前进行确认

3 个版本

0.1.2 2022年4月10日
0.1.1 2022年4月10日
0.1.0 2022年4月10日

#5 in #confirm

MIT 许可证

205KB
95 代码行

Preexec Confirm

A zsh `middleware` forcing user to confirm before executing commands
with preconfigured texts/regex patterns.

演示

用户可以定义一个 YAML 配置文件,指定他们不希望意外执行的危险命令的关键词或正则表达式模式。例如,serverless deploy --stage prod-environment

当中间件检测到危险命令时,它会通过重新输入随机字符串强制用户确认,以避免肌肉记忆。

Demo

如果您想暂时忽略中间件,请导出环境变量 SKIP_CONFIRM=true

Skip-confirm-demo

安装和使用

要求:

  • 本项目仅适用于 Zsh。
  • 需要 Cargo

1. 从源码构建

cargo install preexec_confirm

# ensure the system recognizes preexec_confirm path
which preexec_confirm
## ~/.cargo/bin/preexec_confirm

2. 创建以下格式的 YAML 配置文件

- contain: string
  description (optional): string
  regex (optional): bool
  • contain: 在命令中搜索的文本/正则表达式模式,取决于 regex 选项
  • description: 解释为什么需要此规则
  • regex: 如果设置为 true,则 contain 将被视为正则表达式模式

3. 确保以下行存在于您的 .zshrc 中,并按正确顺序排列

function preexec_confirm_hook() {
    CONFIG_PATH="/home/anhtumai/.config/confirm/config.yml" #change this
    preexec_confirm $CONFIG_PATH $1
}

autoload -Uz add-zsh-hook

add-zsh-hook preexec preexec_confirm_hook

卸载

  • 运行 cargo uninstall preexec_confirm
  • .zshrc 中删除上述配置行

依赖项

~4–15MB
~164K SLoC