Files
ionos-ddns/src/config.rs
2023-10-16 00:36:36 +02:00

37 lines
908 B
Rust

use once_cell::sync::Lazy;
fn get_env(env: &'static str) -> String {
std::env::var(env).unwrap_or_else(|_| panic!("Cannot get the {} env variable", env))
}
pub struct Config {
// https://developer.hosting.ionos.com/?source=IonosControlPanel
pub ionos_public_prefix: String,
pub ionos_secret: String,
pub zone_name: String,
pub record_name: Vec<String>,
pub check_interval_seconds: u64,
}
impl Config {
pub fn load() -> Config {
Config {
ionos_public_prefix: get_env("IONOS_PUBLIC_PREFIX"),
ionos_secret: get_env("IONOS_SECRET"),
zone_name: get_env("ZONE_NAME"),
record_name: get_env("RECORD_NAME").split(",").map(|x| x.to_string()).collect(),
check_interval_seconds: get_env("CHECK_INTERVAL_SECONDS").parse().unwrap(),
}
}
}
pub static CONFIG: Lazy<Config> = Lazy::new(Config::load);