1 个不稳定版本
0.1.0 | 2024 年 8 月 7 日 |
---|
#483 在 命令行工具
124 每月下载次数
33KB
777 代码行
CXD
目录执行器(cxd
)提供了一个简单的界面,用于在特定目录中保存和执行命令。
背景
在处理大型代码库和多个可执行文件时,我常常在每个目录中添加自定义脚本和 Makefile。这让我不必依赖于 bash history
来记住特定的命令。然而,在一次过多的 git-merge
事件覆盖我的临时 Makefile 之后,我编写了 cxd
。
安装
cargo install cxd
使用
cxd
使用一个 sqlite
数据库来保存命令及其对应的目录,以便稍后执行。数据库缓存文件可以跨设备保存和重用。然而,请注意,您绝对不应该信任来自外部来源的缓存文件,因为 cxd
将会执行数据库中的任意命令。
选择缓存文件
默认情况下,cxd
将尝试在以下位置存储缓存文件,如果无法构造任何,则失败。
-f FILE
或--file FILE
$CXD_CACHE_DIR/cxd.cache
$XDG_CACHE_HOME/cxd.cache
$HOME/.cache/cxd.cache
添加命令
要向数据库添加命令,请使用 cxd --add <NAME> <CMD> [ARG]...
。
cxd --add hello echo Hi there!
这将注册一个名为 hello
的命令,该命令会打印出问候语。
如果您希望在调用命令之前切换目录到当前的工作目录 $CWD
,请传递 --cwd
标志。
cxd --add --cwd build cargo build
类似地,您可以使用 --dir <DIR>
设置特定的工作目录。
cxd --add --dir /src/cxd build cargo build
如果必须设置特定的环境变量,请使用 --env <KEY>=<VALUE>
。
cxd --add --env SOME_ENV=hi hello printenv SOME_ENV
执行命令
要从数据库中执行命令,请使用 cxd <CMD>
。
cxd hello
删除命令
要从数据库中删除命令,请使用 cxd --remove <CMD>
。
cxd --remove hello
列出
要列出数据库中的所有命令,请使用 cxd --list
。
cxd --list
清除
要清除数据库中的所有命令,请使用 cxd --clear
。
cxd --clear
技巧
使用多个缓存文件
为特定命令分割缓存文件可能很有用。一个简单且方便的方法是设置别名。
例如,假设您想要两个独立的缓存文件,一个用于娱乐,一个用于工作。
然后您可以将以下内容添加到您的 .bashrc
、.zshrc
或等效文件中。
alias build="cxd -f .cache/cxd.build.cache"
alias play="cxd -f .cache/cxd.play.cache"
这样,您就可以像运行两个不同的命令 cxd
、build
和 play
一样运行每个缓存文件。
依赖项
~23MB
~442K SLoC