#env #command-line #dotenv

app fenv

使用 dotenv 的新 env 命令

1 个不稳定版本

0.2.1 2023 年 6 月 8 日

#33#dotenv

GPL-2.0-or-later

15KB
144 代码行

fenv

新的 env 命令

要求

此项目使用 clap,并且 clap 需要 rust v1.64 或更高版本。因此,此程序需要 rust v1.64 或更高版本。

入门

$ cat << EOF > /tmp/.env.sample
ENV_A=true
EOF
$ fenv -f /tmp/.env.sample ENV_B=true sh -c 'echo ENV_A=$ENV_A; echo ENV_B=$ENV_B'
ENV_A=true
ENV_B=true

用法

env command with dotenv

Usage: fenv [OPTIONS] [ARGUMENTS]...

Arguments:
  [ARGUMENTS]...  environment set and comand arguments [format: [NAME=VALUE]... [COMMAND [ARG]...]]

Options:
  -f <DOTENV_FILES>         dotenv file path
      --color <COLOR_MODE>  color mode [default: auto] [possible values: never, auto, always]
  -h, --help                Print help
  -V, --version             Print version

使用 -f 指定 .env 文件,将使用 dotenvy 读取指定路径的 .env 文件。假设你想加载以下内容的 .env

ENV_A=1
ENV_B=2

假设你有这个文件存储在 ~/.env 并想加载它。为此,执行以下命令

$ fenv -f ~/.env sh -c 'echo ENV_A=$ENV_A; echo ENV_B=$ENV_B'
ENV_A=1
ENV_B=2

-f 可以指定多次。在这种情况下,按指定顺序读取 -f 指定的文件。

# この場合、 ~/.env.1 -> ~/.env2 の順番に読み込まれる
fenv -f ~/.env.1 -f ~/.env.2

或者,也可以像传统 env 一样指定环境变量。

$ fenv ENV=true sh -c 'echo ENV=$ENV'
ENV=true

它们也可以结合使用。

$ cat << EOF > ~/.env
ENV_A=true
EOF
$ fenv -f ~/.env ENV_B=true sh -c 'echo ENV_A=$ENV_A; echo ENV_B=$ENV_B'
ENV_A=true
ENV_B=true

如果没有指定程序,将显示所有当前设置的环境变量。

$ fenv
PWD=/home/example
PATH=...
...

文档

符号限制

环境变量名称可以使用除 = 之外的任何字符。另一方面,环境变量值可以使用任何字符。

$ fenv 🚀=✨
...
🚀=
...

彩色输出

如果您想输出环境变量,您可以通过使用 --color 选项设置颜色模式。

  • auto 模式:默认模式。如果您想指定此模式,请设置 --color=auto。如果 stdout 是 tty,则环境变量输出将着色,否则不着色。
  • never 模式:设置 --color=never。环境变量输出不会着色。
  • always 模式:设置 --color=always。环境变量输出始终着色。
# colorized outputs
fenv --color=always

依赖项

~1.4–10MB
~76K SLoC