#command #env-var #command-arguments #automation #aliases #cross-platform #shell

bin+lib bonnie

简单、跨平台、快速且功能强大的命令别名

1 个不稳定版本

0.3.2 2021 年 9 月 5 日

#1992命令行工具

Download history 9/week @ 2024-03-13 1/week @ 2024-03-20 10/week @ 2024-03-27 19/week @ 2024-04-03 8/week @ 2024-04-10 1/week @ 2024-04-17 6/week @ 2024-04-24 1/week @ 2024-05-22 18/week @ 2024-05-29 5/week @ 2024-06-05 103/week @ 2024-06-12 182/week @ 2024-06-19 128/week @ 2024-06-26

每月 418 次下载

MIT 许可证

105KB
1.5K SLoC

Bonnie

Contributor Covenant Test Build and Release Join the chat at https://gitter.im/bonnie-cli/community

简单、跨平台、快速且功能强大的命令别名。

文档版本贡献

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]替换为您想要的二进制文件所在的操作系统(以下之一:windowsmacoslinuxmusl)。

为什么叫'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