#![feature(box_syntax)] use config::{load_global_config, GlobalConfig}; use database::Database; use jellyremuxer::RemuxerContext; use library::Library; use once_cell::sync::Lazy; use rocket::launch; use routes::build_rocket; use std::sync::Arc; pub mod config; pub mod database; pub mod library; pub mod routes; pub struct AppState { pub database: Database, pub library: Library, pub remuxer: Arc, } pub static CONF: Lazy = Lazy::new(|| load_global_config()); #[launch] fn rocket() -> _ { env_logger::builder() .filter_level(log::LevelFilter::Info) .parse_env("LOG") .init(); let state = AppState { remuxer: RemuxerContext::new(), library: Library::open(&CONF.library_path).unwrap(), database: Database::open(&CONF.database_path).unwrap(), }; build_rocket(state) }