1 个不稳定版本
0.1.0 | 2023年6月15日 |
---|
#117 in #hook
55KB
1.5K SLoC
krabby
一个小巧的项目管理器!🦀
什么是 krabby
或者说它想要成为什么?
好吧,krabby
是我对项目管理应该是什么样子的一些看法。我从来不是 make
的粉丝,我唯一喜欢 npm/yarn 的就是它们处理脚本的方式。我也是个被宠坏了的程序员,希望可以轻松访问我的项目,而不用在 shell 上设置每个别名。我在 Rust 生态系统中错过了很多东西,所以我想“为什么不自己处理呢”?所以,就这样开始了!
安装
您可以在本地构建项目或从发布页面获取二进制文件。
将二进制文件放置到您的 PATH
中后,您应该在 .bashrc
或 .zshrc
文件中添加以下内容
eval "$(krabby shell bash)"
目前它只支持
bash
和zsh
。
功能
项目数据库
注册所有项目,并在您想的时候轻松切换到它们!
查看 krabby.example.db
以了解其外观。
这里的一些元数据可能很有用,但现在我还不知道。
项目脚本
语言无关的项目脚本:创建、删除和移除项目文件中的脚本。
您目前无法组合脚本。
您可以在 krabby.example.toml
中查看一个示例。
项目钩子
创建一个钩子,在通过 kb
命令进入项目后自动运行!钩子可以是一个简单的命令或一系列脚本的序列。
name = "krabby"
hook = ["hello", "world"]
[scripts]
hello = "echo hello"
world = "echo world"
和
name = "krabby"
hook = "echo hello; echo world"
是等价的!
项目钩子必须在脚本会话之前定义。有关更多信息,请参阅 此问题。
示例
- 管理项目:管理数据库中的项目条目(
~/.krabby.db
)。kb project add PROJECT PATH kb project remove PROJECT
- 跳转到项目:直接进入您的项目目录。
kb PROJECT
- 运行脚本:执行您的脚本
kb run SCRIPT
- 定义钩子:在加载项目后设置要运行的脚本
# Run `setup` script after you check in the project with `kb PROJECT`. kb hook set SCRIPT1,SCRIPT2,SCRIPT3 # or kb hook set COMMAND
路线图
- 脚本组合:我认为在脚本中使用脚本会很好,但目前还没有找到使其工作的方式。
- 改进参数解析:我知道
clap
可以直接解析值,但这意味着我必须重写parse
函数,使其返回一个Result
而不是Self
。
这基于 @LukeMathWalker 的关于解析与验证的
zero2prod
章节内容。我仍在学习这个(我希望如此)。但如果你不知道这个,我强烈推荐! 零到生产 Rust
- 改进反馈:消息系统似乎有很多改进的空间。此外,我还想确保用户知道正在发生什么。
- 编写更好的测试:我认为代码看起来很乱,我想整理一下。
- 提供补全功能:当使用
run
命令时,如果能自动补全脚本名称将很棒。 - 改进日志:使用
log
crate 来提高详细输出的可读性 - 创建新项目并在
krabby.db
上直接注册
依赖项
~2.6–4MB
~67K SLoC