#![feature(box_syntax)] use database::Database; use jellyremuxer::RemuxerContext; use library::Library; use rocket::launch; use routes::build_rocket; use std::sync::Arc; pub mod database; pub mod library; pub mod routes; pub struct AppState { pub database: Database, pub library: Library, pub remuxer: Arc, } #[launch] fn rocket() -> _ { env_logger::init_from_env("LOG"); let db_path = std::env::var("DB_PATH").unwrap_or("data/db".to_string()); let lib_path = std::env::var("LIB_PATH").unwrap_or("data/library".to_string()); let state = AppState { remuxer: RemuxerContext::new(), library: Library::open(&lib_path).unwrap(), database: Database::open(&db_path).unwrap(), }; build_rocket(state) }