1 个不稳定版本
0.1.0 | 2022 年 3 月 16 日 |
---|
#54 在 #环境
29KB
662 行
envi
一个简单的 CLI 工具,用于管理多个环境中的环境变量。
想法是在配置文件中定义 通用 和 特定于环境的 环境变量,然后使用 envi
生成与给定环境相关的配置文件中的环境变量列表。
用法
假设我们有两个环境 dev
和 qa
,我们希望为它们设置一些环境变量。
配置文件
让我们为 envi
创建一个配置文件。默认情况下,envi
将在当前工作目录中查找名为 .envi.toml
的文件。要使用的配置文件也可以在 ENVI_FILE
环境变量或使用 -
命令行选项中定义。
支持的文件格式
文件类型 | 文件扩展名 |
---|---|
TOML | .toml |
YAML | .yml 或 .yaml |
JSON | .json |
配置文件布局
配置文件由表示所有环境中通用的环境变量的顶级键值对列表和一个或多个表格组成,每个表格代表特定环境。这些表格包含特定于该特定环境的键值对(可能覆盖顶级键值对)。
例如,我们的 .envi.toml
可能看起来像这样
# file: .envi.toml
# some common env variables
FOO = "mother_of_all_foos"
BAR = "mother_of_all_bars"
BAZ = 9999
# "dev" specific env variables
[dev]
FOO = "dev_foo"
BAR = "dev_bar"
QUX = "quxxxx"
# "qa" specific env variables
[qa]
FOO = "qa_foo"
或者以 YAML
格式的相同内容
# file: .envi.yaml
# some common env variables
FOO: mother_of_all_foos
BAR: mother_of_all_bars
BAZ: 9999
# "dev" specific env variables
dev:
FOO: dev_foo
BAR: dev_bar
QUX: quxxxx
# "qa" specific env variables
qa:
FOO: qa_foo
或者以 JSON
格式的相同内容
{
"FOO": "mother_of_all_foos",
"BAR": "mother_of_all_bars",
"BAZ": 9999,
"dev": {
"FOO": "dev_foo",
"BAR": "dev_bar",
"QUX": "quxxxx"
},
"qa": {
"FOO": "qa_foo"
}
}
列出所有可用的键
keys
子命令列出配置文件中的所有配置环境。
% envi keys
dev
qa
显示给定键的环境变量
show
子命令输出给定键的所有环境变量。
% envi show dev
BAR=dev_bar
BAZ=9999
FOO=dev_foo
QUX=quxxxx
% envi show qa
BAR=mother_of_all_bars
BAZ=9999
FOO=qa_foo
您可以将这些值轻松地放入文件中,例如,放入 .env
,通过管道输出
envi show qa >.env
或者使用 -
选项将其写入文件
envi show qa -o .env
比较环境
diff
子命令允许您比较两个环境之间配置的环境变量。
% envi diff dev qa
--- dev
+++ qa
- BAR=dev_bar
+ BAR=mother_of_all_bars
- FOO=dev_foo
+ FOO=qa_foo
- QUX=quxxxx
比较当前shell环境变量与指定环境
ediff
子命令允许您比较当前shell环境变量与给定键配置的环境变量。
% FOO=foo BAR=bar BAZ=baz QUX=xxx envi ediff dev
--- env
+++ dev
- BAR=bar
+ BAR=dev_bar
- BAZ=baz
+ BAZ=9999
- FOO=foo
+ FOO=dev_foo
- QUX=xxx
+ QUX=quxxxx
依赖项
约5.5MB
约100K SLoC