1 个不稳定版本
0.1.0 | 2022年11月28日 |
---|
#27 在 #gpg
37KB
980 行
kv
kv
(发音为 [keɪ ve:])是一个加密和版本化的命令行键值存储。它与 pass、rpass、gopass 以及它的所有表亲和兄弟类似。实际上,它与它们兼容,但有一个主要区别:kv
是一个键值存储,而不是密码存储。它不包含密码管理器的所有功能和装饰,只提供存储和检索键值对的最基本功能。因此,kv
比其他工具更简单、更易于使用,并且也更容易集成到您的日常工作中。运行它的唯一要求是 git
和 gpg
。如果您有这些(如果您正在寻找命令行键值存储解决方案,我敢打赌您有),您可以直接使用 kv
。
功能
- 默认加密一切
- 永远不会以纯文本形式存储您的机密信息
- 使用
gpg
进行加密
- 版本控制
- 永远不会丢失您的机密信息
- 使用
git
进行版本控制
- 简单
- 没有复杂的命令行选项
- 没有配置文件
- 没有设置向导
- 没有数据库
- 没有网页界面
- 没有守护进程
- 没有云服务
- 没有无用的东西
安装
从源代码安装
git clone [email protected]:trusch/kv.git
cd kv
make release
sudo make install
# optionally install shell completion for zsh...
cp completions/kv.zsh ~/.oh-my-zsh/completions/_kv
# ...or bash
sudo cp completions/kv.bash /etc/bash_completion.d/kv
用法
Usage: kv [OPTIONS] <COMMAND>
Commands:
set set a key value pair
get get a value
list list keys
delete delete a key
push Push changes to remote origin
pull Pull changes from remote origin
help Print this message or the help of the given subcommand(s)
Options:
--root <VALUE> [env: KV_ROOT=.] [default: ~/.kv]
--gpg <VALUE> [env: KV_GPG_ID=]
-h, --help Print help information
-V, --version Print version information
自动补全
支持 zsh 和 bash 壳的自动补全。这些补全是用 clap 生成的,但后来手动调整以支持键的动态补全。要为 zsh 启用自动补全,请将 completions/kv.zsh
文件复制到您的 zsh 自动补全目录(对于 oh-my-zsh 用户,这将是 ~/.oh-my-zsh/completions
)。Bash 用户可以将 completions/kv.bash
文件复制到 /etc/bash_completion.d/
。原始补全(未经手动调整)是用隐藏子命令 kv generate-shell-completion <SHELL>
生成的,其中 SHELL 是 bash、elvish、fish、powershell 或 zsh 之一。
用法示例
存储和检索一些数据
kv set data "This is the data"
kv get data
# prints "This is the data"
使用管道
echo "This is the data" | kv set data
kv get data | tr '[:lower:]' '[:upper:]'
# prints "THIS IS THE DATA"
使用环境变量
export KV_ROOT="/mnt/secure"
export KV_GPG_ID="[email protected]"
kv set data "This is the data"
# data is stored in /mnt/secure/data.gpg with the specified key
搜索密钥
kv set one/complicated/path/foo "This is the right data"
kv set second/complicated/path/bar "This is the wrong data"
key=$(kv list | grep foo)
kv get $key
# prints "This is the right data"
设置远程源
cd ~/.kv
git remote add origin [email protected]:my-user/kv-store.git
git push --set-upstream origin main
kv set data "This is the data"
kv push
依赖项
~5–14MB
~172K SLoC