2019-10-09 02:35:26 +02:00
|
|
|
use super::{deployment_cfg_types::*, EnvVar};
|
2019-10-04 00:02:23 +02:00
|
|
|
|
2019-10-09 02:35:26 +02:00
|
|
|
#[derive(Debug, Default)]
|
2020-04-13 22:03:06 +02:00
|
|
|
pub struct Deployment<'a> {
|
2019-10-09 02:35:26 +02:00
|
|
|
pub env: Env,
|
|
|
|
pub log_level: LogLevel,
|
|
|
|
pub address: FlodgattAddr,
|
|
|
|
pub port: Port,
|
|
|
|
pub unix_socket: Socket,
|
2019-10-04 00:02:23 +02:00
|
|
|
pub cors: Cors<'a>,
|
2019-10-09 02:35:26 +02:00
|
|
|
pub sse_interval: SseInterval,
|
|
|
|
pub ws_interval: WsInterval,
|
2020-03-20 19:42:01 +01:00
|
|
|
pub whitelist_mode: WhitelistMode,
|
2019-10-04 00:02:23 +02:00
|
|
|
}
|
|
|
|
|
2020-04-13 22:03:06 +02:00
|
|
|
impl Deployment<'_> {
|
2019-10-09 02:35:26 +02:00
|
|
|
pub fn from_env(env: EnvVar) -> Self {
|
|
|
|
let mut cfg = Self {
|
|
|
|
env: Env::default().maybe_update(env.get("NODE_ENV")),
|
|
|
|
log_level: LogLevel::default().maybe_update(env.get("RUST_LOG")),
|
|
|
|
address: FlodgattAddr::default().maybe_update(env.get("BIND")),
|
|
|
|
port: Port::default().maybe_update(env.get("PORT")),
|
|
|
|
unix_socket: Socket::default().maybe_update(env.get("SOCKET")),
|
|
|
|
sse_interval: SseInterval::default().maybe_update(env.get("SSE_FREQ")),
|
|
|
|
ws_interval: WsInterval::default().maybe_update(env.get("WS_FREQ")),
|
2020-03-20 19:42:01 +01:00
|
|
|
whitelist_mode: WhitelistMode::default().maybe_update(env.get("WHITELIST_MODE")),
|
2019-10-09 02:35:26 +02:00
|
|
|
cors: Cors::default(),
|
|
|
|
};
|
|
|
|
cfg.env = cfg.env.maybe_update(env.get("RUST_ENV"));
|
2020-03-20 01:54:23 +01:00
|
|
|
log::info!("Using deployment configuration:\n {:#?}", &cfg);
|
2019-10-09 02:35:26 +02:00
|
|
|
cfg
|
2019-10-04 00:02:23 +02:00
|
|
|
}
|
|
|
|
}
|