Something went wrong. Try again.
My pier among the harbours of the internet. manczak.net
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142use std::{ env::{self, VarError}, error::Error, fs, path::PathBuf, sync::LazyLock,};
use crate::db;
pub static STORE_DIR: LazyLock<PathBuf> = LazyLock::new(|| { env::var("PERSISTENT_STORE") .map(PathBuf::from) .unwrap_or_else(|_| PathBuf::from("./store"))});
pub static DATABASE: LazyLock<PathBuf> = LazyLock::new(|| STORE_DIR.join("database.sqlite"));pub static BLOB_STORE: LazyLock<PathBuf> = LazyLock::new(|| STORE_DIR.join("blobs"));pub static FEATURES_FILE: LazyLock<PathBuf> = LazyLock::new(|| STORE_DIR.join("features.json"));
pub fn setup() -> Result<(), Box<dyn Error>> { tracing_subscriber::fmt::init();
fs::create_dir_all(&*STORE_DIR)?; fs::create_dir_all(&*BLOB_STORE)?; db::run_migrations()?;
Ok(())}
pub fn port() -> u16 { match env::var("PORT") { Ok(p) => match p.parse::<u16>() { Ok(port) => return port, _ => log::error!("Failed to parse port."), }, Err(VarError::NotPresent) => log::warn!("No port set, using default."), Err(VarError::NotUnicode(payload)) => log::error!("Invalid port: {:?}", payload), }; 2004}