#env-var #variables #environment #manage #cli-tool #cli

bin+lib envi

一个简单的 CLI 工具,用于管理多个环境中的环境变量

1 个不稳定版本

0.1.0 2022 年 3 月 16 日

#54#环境

MIT 许可证

29KB
662

License: MIT Build

envi

一个简单的 CLI 工具,用于管理多个环境中的环境变量。

想法是在配置文件中定义 通用特定于环境的 环境变量,然后使用 envi 生成与给定环境相关的配置文件中的环境变量列表。

用法

假设我们有两个环境 devqa,我们希望为它们设置一些环境变量。

配置文件

让我们为 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