1 个不稳定版本
0.3.2 | 2021 年 9 月 5 日 |
---|
#1992 在 命令行工具
每月 418 次下载
105KB
1.5K SLoC
Bonnie
简单、跨平台、快速且功能强大的命令别名。
Bonnie 是一个命令别名工具,允许您快速高效地定义长命令的简短别名。以下是一些快速功能概述:
- ✨ 支持简单的键值别名
- ✨ 支持在命令中插入自定义参数
- ✨ 支持插入环境变量
- ✨ 支持将所有参数添加到单个位置
- ✨ 支持在不同操作系统上使用不同的命令
- ✨ 支持指定单个命令的特定外壳
- ✨ 支持按文件指定不同操作系统的默认外壳
- ✨ 支持无限嵌套子命令
- ✨ 支持根据退出码按特定顺序执行子命令
- ✨ 支持在解析后缓存大型配置文件以提高性能
- ✨ 支持从模板初始化新配置文件
- ✨ 支持全局模板
- ✨ 支持调试模式
- ✨ 支持自文档化的配置文件
基本上,如果您在项目中经常运行命令,Bonnie 就是为您准备的。Bonnie 支持极简单和极复杂的用例,同时保持卓越的性能。
它看起来像什么?
最简单的 Bonnie 配置文件可能如下所示
version = "0.3.2"
[scripts]
build = "echo Building"
这种语法很容易扩展,随着脚本复杂性的增加,可以支持无限嵌套子命令,这些子命令将根据它们的退出码自动按特定顺序执行,使用自定义外壳和不同操作系统上的不同命令,同时插入提供的参数和少数环境变量。不,这不是夸张,您可以在 文档 中看到示例!
这与 Bash 别名有何不同?
bash别名是一种将长命令转换为短命令的好方法,但它们无法按文件夹定制。Bonnie则可以。此外,如果您想插入自定义参数或环境变量,您将不得不为每个别名编写一个小脚本。如果您想使用子命令,祝您好运!Bonnie通过简单直观的语法解决了所有这些问题。
Bonnie也是跨平台的,甚至支持为同一命令别名在不同的操作系统上运行不同的命令。
这与Make
有何不同?
GNU Make被设计用来在特定文件更改时重新编译项目的部分,然而它指定命令别名的功能使很多人用它来达到这个目的。然而,Make已经过时,语法笨拙、不灵活。对于简单的目的,它可能过于强大。
相比之下,Bonnie使用TOML,它被特别设计为易于人类阅读,并且语法简单,可以根据需要扩展。您不需要编写您永远不会使用的东西的配置。
安装
如果您有cargo
(Rust的包管理器),可以通过运行以下命令轻松安装Bonnie:cargo install bonnie
。
否则,您可以从发布页面为Windows、MacOS、Linux和musl安装。如果您需要为其他系统安装Bonnie,您可以克隆此存储库,并根据需要使用Cargo构建项目。如果您认为我们应该在默认发布中支持特定的操作系统,请提交一个issue并告诉我们!
下载或构建二进制文件后,将其移动到易于执行的位置(例如,Linux上的/usr/local/bin
)。您还需要使其可执行(Linux上为chmod +x ./[BINARY_NAME]
)。然后,您应该可以从终端使用bonnie
运行Bonnie!
在Docker中安装
Bonnie为Linux和musl(例如Alpine Linux)提供了预构建的可执行文件,可以通过以下命令轻松安装在Dockerfile中:
RUN curl -L https://github.com/arctic-hen7/bonnie/releases/download/[VERSION]/bonnie-[OS]-amd64
只需将[VERSION]
替换为最新版本(参见发布页面),并将[OS]
替换为您想要的二进制文件所在的操作系统(以下之一:windows
、macos
、linux
或musl
)。
为什么叫'Bonnie'?
没有特别的原因,这个名字听起来很悦耳。对名叫Bonnie的人没有任何冒犯之意!
稳定性
Bonnie功能已经非常齐全,尽管项目仍在积极开发中,还有几个关键特性在v1.0.0之前需要添加。此外,Bonnie的有序子命令系统(参见文档)非常新颖,我们需要看到它在生产环境中更长时间的表现。
Bonnie最初计划在2021年5月稳定,但由于程序的重写和几乎所有主要功能的引入发生在6月,这个截止日期被推迟了。目前,Bonnie计划在2021年9月底稳定,但程序每天都在使用,并且正在积极维护,所以不要因此而气馁!
路线图
- 支持在
~/.bonnie/template.toml
中支持默认全局模板 - 支持调试模式
- 支持自文档化的配置
- 支持可选参数
- 支持为可选参数提供默认值
- 支持使用特殊开标将数据管道传输到Bonnie脚本(可能是
%[stdin]
?)
变更日志
您可以在变更日志中查看项目的所有最新更新。
如果您认为这里应该有某些内容,或者您发现了错误,请创建一个问题并告诉我们!
贡献
非常感谢!您可以通过阅读贡献指南了解如何为Bonnie做出贡献,并请记住遵守行为准则。
许可证
请参阅LICENSE。
依赖
~3–12MB
~133K SLoC