1 个不稳定版本

0.1.0 2023年6月15日

#117 in #hook

MIT/Apache

55KB
1.5K SLoC

krabby

一个小巧的项目管理器!🦀

Build Status License: MIT/Apache-2.0

什么是 krabby

或者说它想要成为什么?

好吧,krabby 是我对项目管理应该是什么样子的一些看法。我从来不是 make 的粉丝,我唯一喜欢 npm/yarn 的就是它们处理脚本的方式。我也是个被宠坏了的程序员,希望可以轻松访问我的项目,而不用在 shell 上设置每个别名。我在 Rust 生态系统中错过了很多东西,所以我想“为什么不自己处理呢”?所以,就这样开始了!

安装

您可以在本地构建项目或从发布页面获取二进制文件。

将二进制文件放置到您的 PATH 中后,您应该在 .bashrc.zshrc 文件中添加以下内容

eval "$(krabby shell bash)"

目前它只支持 bashzsh

功能

项目数据库

注册所有项目,并在您想的时候轻松切换到它们!

查看 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