blob: 769269c9efa6c982b77e48d3517b5ba321a2abc2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
use serde::Deserialize;
#[derive(Deserialize)]
pub struct Config {
pub apikey: String,
pub server: String,
}
impl Config {
pub fn load() -> Result<Config, config::ConfigError> {
let config_dir = dirs::config_dir();
let builder = config::Config::builder();
let builder = if let Some(conf) = config_dir {
let dir = conf.to_string_lossy();
builder.add_source(config::File::with_name(format!("{dir}/webol-cli").as_str()).required(false))
} else {
println!("!No config dir found");
builder
};
let build = builder
.add_source(config::File::with_name("webol-cli").required(false))
.add_source(config::Environment::with_prefix("WEBOL_CLI").separator("_"))
.build()?;
build.try_deserialize()
}
}
|