2019-10-09 02:35:26 +02:00
|
|
|
use super::{deployment_cfg_types::*, EnvVar};
|
2020-04-15 02:37:49 +02:00
|
|
|
use crate::err::FatalErr;
|
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<'_> {
|
2020-04-15 02:37:49 +02:00
|
|
|
pub fn from_env(env: &EnvVar) -> Result<Self, FatalErr> {
|
2019-10-09 02:35:26 +02:00
|
|
|
let mut cfg = Self {
|
2020-04-15 02:37:49 +02:00
|
|
|
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"))?,
|
|
|
|
whitelist_mode: WhitelistMode::default().maybe_update(env.get("WHITELIST_MODE"))?,
|
2019-10-09 02:35:26 +02:00
|
|
|
cors: Cors::default(),
|
|
|
|
};
|
2020-04-15 02:37:49 +02:00
|
|
|
cfg.env = cfg.env.maybe_update(env.get("RUST_ENV"))?;
|
|
|
|
Ok(cfg)
|
2019-10-04 00:02:23 +02:00
|
|
|
}
|
|
|
|
}
|