15 个版本 (9 个破坏性更新)
0.10.1 | 2024年7月12日 |
---|---|
0.9.0 | 2023年11月7日 |
0.5.0 | 2023年6月30日 |
在 命令行工具 中排名第 390
每月下载量 128 次
30KB
486 行
Safir
简单的 CLI 键值存储。
在终端中存储键值对,并在以后使用时检索它们,如在不同的 shell 会话中。
安装
要安装 safir
,运行 cargo install safir
.
要从源码构建,克隆仓库并运行
cargo build --release
然后将二进制文件移动到你的 $PATH
中
用法
当 safir
运行时,它会在你的 $HOME
目录中创建一个存储文件($HOME/.safirstore/safirstore.json
)。
运行 safir --help
以获取用法信息
Key/Value store to share information between shell sessions
Usage: safir <COMMAND>
Commands:
add Add a value to the store with the given key
get Get values from the store
rm Remove values from the store
alias Output the alias command for key / value pairs
export Output the export command for a key / value pairs
mode Sets the mode for Safir (active on the next run of Safir)
list List all values in the store
clear Clear all keys/values from the store
purge Purges the .safirstore directory, removing it and its contents
use Use / create an environment to store key / value pairs
env Display the current loaded environment
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
文件模式与数据库模式
文件模式就像旧的 safir
版本 - 所有的键值对都存储在以前的 JSON 值中。
数据库模式使用 SQLite 数据库作为存储,这在技术上更安全。
在不同模式之间切换不会携带之前模式中的任何更改(即,在文件模式中添加的键值对在数据库模式中不存在,除非你自己添加它们)。
这可能在未来的版本中发生变化
环境
Safir 现在支持在特定环境中存储键值对,这将整理 list
命令,并使所有相关键值对都在一个地方。
当 Safir 首次加载时,它会创建一个新的 default
环境(或加载现有的一个)并使用它,除非你切换到另一个环境。
旧版本的Safir存储将自动迁移到新格式,因此无需担心数据丢失!
示例
向存储添加键和值
safir add api_key "api_key_value"
从存储检索值
safir get api_key
# api_key="api_key_value"
从存储中删除值
safir rm api_key
列出存储中的所有值
safir list
# api_key="api_key_value"
# another_api_key="another_value"
导出值
safir export api_key
# export api_key="api_key_value"
eval $(safir export api_key) # <-- Will export the value to the current shell
给值起别名
safir alias long_command
# alias long_command="cd build/ && make && sudo make install"
eval $(safir alias long_command) # <-- Will alias the command in the current shell
清空存储
safir clear
# Will remove all contents in the store
清除存储(移除所有safir
相关内容)
safir purge # Will remove the .safirstore directory
设置环境
safir use [environment-name] # This will create an empty environment or load an existing one
在file
和database
模式之间切换
safir mode file # Switch to using a JSON file for storage
safir mode database # Switch to using an SQLite database for storage
显示当前加载的环境
safir env # Will display the currently loaded environment
依赖项
~33–46MB
~781K SLoC