fenv

Crates.iofenv
lib.rsfenv
version0.2.1
sourcesrc
created_at2023-06-08 03:08:11.782911
updated_at2023-06-08 03:08:11.782911
descriptionnew env command with dotenv
homepagehttps://gitlab/moba1/fenv
repositoryhttps://gitlab/moba1/fenv
max_upload_size
id885146
size41,120
(moba1)

documentation

https://gitlab/moba1/fenv

README

fenv

new env command

Requirements

This project use clap and clap require rust v1.64 or higher version. Therefore, this program require rust v1.64 or higher version.

Getting Started

$ 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

Usage

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

Specifying a .env file with -f will use dotenvy to read the .env file with the specified path. Suppose you want to load .env with following contents:

ENV_A=1
ENV_B=2

Assuming you have this file stored in ~/.env and want to load it. To achieve this, execute following command:

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

-f may be specified multiple times. In that case, files, specified by -f are read in the specified order.

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

Alternatively, environment variables can be specified in same way as in conventional env.

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

It can also be combined.

$ 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

If specified no program, all currentyly set environment variables are displayed.

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

Documentation

Symbol restrict

Environment variable name can use any character except =. On the other hand, environment variable value can use any character.

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

Colorized output

If you want to output environment variable, you set color mode by using --color option.

  • auto mode: default mode. If you want to specify this mode, set --color=auto. If stdout is tty, environment variables output is colorized, and is not colorized otherwise.
  • never mode: set --color=never. environment variables output is not colorized.
  • always mode: set --color=always. environment variables output is always colorized.
# colorized outputs
fenv --color=always
Commit count: 0

cargo fmt