1use anyhow::Result;
2use once_cell::sync::OnceCell;
3use tracing::info;
4
5pub mod dao;
6pub mod db;
7pub mod meta;
8pub mod model;
9pub mod region;
10pub mod storage;
11pub mod trace;
12pub mod version;
13
14pub static PROD_DOMAIN: OnceCell<String> = OnceCell::new();
15pub static PROD_PROTOCOL: OnceCell<String> = OnceCell::new();
16
17#[tracing::instrument(name = "[PROD_DOMAIN]")]
19pub async fn init_prod_const() -> Result<()> {
20 let domain = std::env::var("PROD_DOMAIN").unwrap_or("127-0-0-1.nip.io".to_string());
21 let protocol = std::env::var("PROD_PROTOCOL").unwrap_or("http".to_string());
22 info!("Set {}://{}", protocol, domain);
23 PROD_DOMAIN.set(domain).unwrap();
24 PROD_PROTOCOL.set(protocol).unwrap();
25 Ok(())
26}