Crates.io | eve |
lib.rs | eve |
version | 0.1.1 |
source | src |
created_at | 2018-06-18 01:40:57.334058 |
updated_at | 2018-06-18 02:00:59.949688 |
description | A program allowing for easy search and replace with environment variables. |
homepage | |
repository | https://github.com/Aaronepower/eve.git |
max_upload_size | |
id | 70578 |
size | 25,482 |
The eve utility reads the specified files, or standard input if no files are
specified, replacing all instances of {{VAR}}
with the environment variable
of the same name e.g. $VAR
. This utility is mainly useful as a replacement to
using sed
to insert environment variables into files. As is common when using
Docker.
cargo install eve
You can download prebuilt binaries in the releases section or create one from source.
$ git clone https://github.com/Aaronepower/eve.git
$ cd eve
$ cargo build --release
# sudo mv target/release/eve /usr/local/bin
env
PATH
<path>;C:/eve/;
eve = "0.1"
Here's an example of replacing variables in a nginx configuration with
environment variables, and comparsion with the equivalent sed
command.
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;
}
}