diff --git a/README-EN.md b/README-EN.md index 9a0aa6f..338de75 100644 --- a/README-EN.md +++ b/README-EN.md @@ -35,7 +35,7 @@ Or you can download binary file form the Release page. ## Configuration -Fourth will read yaml format configuration file from `/etc/fourth/config.yaml`, here is an minimal viable example: +Fourth will read yaml format configuration file from `/etc/fourth/config.yaml`, and you can set custom path to environment variable `FOURTH_CONFIG`, here is an minimal viable example: ```yaml version: 1 diff --git a/README.md b/README.md index 1f4ba9f..1fbc301 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ $ cargo install fourth ## 配置 -Fourth使用yaml格式的配置文件,默认情况下会读取`/etc/fourth/config.yaml`,如下是一个最小有效配置: +Fourth使用yaml格式的配置文件,默认情况下会读取`/etc/fourth/config.yaml`,您也可以设置自定义路径到环境变量`FOURTH_CONFIG`,如下是一个最小有效配置: ```yaml version: 1 diff --git a/src/main.rs b/src/main.rs index 4a9532f..05c0f4f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,10 +5,13 @@ mod servers; use crate::config::Config; use crate::servers::Server; +use std::env; use log::{debug, error}; fn main() { - let config = match Config::new("/etc/fourth/config.yaml") { + let config_path = env::var("FOURTH_CONFIG").unwrap_or_else(|_| "/etc/fourth/config.yaml".to_string()); + + let config = match Config::new(&config_path) { Ok(config) => config, Err(e) => { println!("Could not load config: {:?}", e);