#env-var #variables #environment #replace #search

bin+lib eve

一个允许使用环境变量轻松搜索和替换的程序

2 个版本

使用旧的 Rust 2015

0.1.1 2018 年 6 月 18 日
0.1.0 2018 年 6 月 18 日

#1823 in 开发工具

MIT/Apache

19KB
311

Eve: 环境编辑器

Linux build status Windows build status Documentation Donate using Liberapay

eve 工具读取指定的文件,如果没有指定文件,则读取标准输入,将所有 {{VAR}} 替换为同名的环境变量,例如 $VAR。此工具主要用于替代使用 sed 将环境变量插入到文件中。在 Docker 中使用时很常见。

安装

二进制文件

自动
cargo install eve
手动

您可以在版本发布部分下载预构建的二进制文件或从源创建一个。

$ git clone https://github.com/Aaronepower/eve.git
$ cd eve
$ cargo build --release
Linux/OSX
# sudo mv target/release/eve /usr/local/bin
Windows
  • 为 eve 创建一个文件夹
  • 搜索 env
  • 打开 "编辑你的环境变量"
  • 编辑 PATH
  • 将文件夹路径追加到字符串末尾,例如: <path>;C:/eve/;

eve = "0.1"

示例

以下是一个示例,展示如何使用环境变量替换 nginx 配置中的变量,并与等效的 sed 命令进行比较。

nginx.conf

server {
    listen 80;
    listen [::]:80;

    server_name {{NGINX_HOST}};

    location / {
        proxy_pass {{NGINX_PROXY}};
        proxy_next_upstream error timeout invalid_header http_500 http_502
            http_503 http_504;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header        Host            {{NGINX_HOST}};
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

.env

NGINX_HOST=localhost
NGINX_PROXY=localhost:8000

命令

sed
sed -e "s|{{NGINX_HOST}}|$NGINX_HOST|" \
    -e "s|{{NGINX_PROXY}}|$NGINX_PROXY|" \
    nginx.conf
eve
eve nginx.conf

输出

server {
    listen 80;
    listen [::]:80;

    server_name localhost;

    location / {
        proxy_pass localhost:8000;
        proxy_next_upstream error timeout invalid_header http_500 http_502
            http_503 http_504;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header        Host            localhost;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

依赖关系

~4–12MB
~137K SLoC