2 releases
Uses old Rust 2015
0.1.1 | Jun 18, 2018 |
---|---|
0.1.0 | Jun 18, 2018 |
#2291 in Development tools
19KB
311 lines
Eve: Environment editor
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.
Installation
Binary
Automatic
cargo install eve
Manual
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
Linux/OSX
# sudo mv target/release/eve /usr/local/bin
Windows
- Create a folder for eve
- search for
env
- open "edit your enviroment variables"
- edit
PATH
- append folder path to the end of the string ie:
<path>;C:/eve/;
Library
eve = "0.1"
Example
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
Commands
sed
sed -e "s|{{NGINX_HOST}}|$NGINX_HOST|" \
-e "s|{{NGINX_PROXY}}|$NGINX_PROXY|" \
nginx.conf
eve
eve nginx.conf
Output
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;
}
}
Dependencies
~5–13MB
~156K SLoC