You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.2 KiB
71 lines
1.2 KiB
use envy::{from_env, prefixed, Result as EnvResult}; |
|
use lazy_static::lazy_static; |
|
use serde::Deserialize; |
|
use uuid::Uuid; |
|
|
|
pub use envy::Error; |
|
|
|
pub const MASTER_PORT: u16 = 63714; |
|
|
|
lazy_static! { |
|
static ref UID: Uuid = Uuid::new_v4(); |
|
} |
|
|
|
#[inline] |
|
pub fn get_self_uid() -> Uuid { |
|
*UID |
|
} |
|
|
|
#[derive(Deserialize)] |
|
pub struct EndpointsEnv { |
|
#[serde(default = "default_host")] |
|
pub u_server: String, |
|
} |
|
|
|
impl EndpointsEnv { |
|
pub fn load() -> EndpointsEnv { |
|
dot(); |
|
from_env().unwrap() |
|
} |
|
} |
|
|
|
#[derive(Deserialize)] |
|
pub struct DBEnv { |
|
pub database: String, |
|
pub host: String, |
|
pub user: String, |
|
pub password: String, |
|
pub port: u16, |
|
} |
|
|
|
impl DBEnv { |
|
pub fn load() -> EnvResult<DBEnv> { |
|
dot(); |
|
prefixed("POSTGRES_").from_env() |
|
} |
|
} |
|
|
|
#[derive(Deserialize)] |
|
pub struct AccessEnv { |
|
pub admin_auth_token: String, |
|
#[serde(default = "default_host")] |
|
pub u_server: String, |
|
} |
|
|
|
impl AccessEnv { |
|
pub fn load() -> EnvResult<AccessEnv> { |
|
dot(); |
|
from_env() |
|
} |
|
} |
|
|
|
fn dot() { |
|
let envs = [".env", ".env.private"]; |
|
for envfile in &envs { |
|
dotenv::from_filename(envfile).ok(); |
|
} |
|
} |
|
|
|
pub fn default_host() -> String { |
|
"ortem.xyz".to_string() |
|
}
|
|
|