#键值存储 #键值 #存储 #终端 #存储键 #实用工具 #键值数据库

应用 safir

在不同的 shell 会话之间共享值的键/值存储

15 个版本 (9 个破坏性更新)

0.10.1 2024年7月12日
0.9.0 2023年11月7日
0.5.0 2023年6月30日

命令行工具 中排名第 390

Download history 135/week @ 2024-06-21 7/week @ 2024-06-28 2/week @ 2024-07-05 99/week @ 2024-07-12 1/week @ 2024-07-19 26/week @ 2024-07-26 2/week @ 2024-08-02

每月下载量 128

MIT/Apache

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

filedatabase模式之间切换

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