use actix_web::{web, App, HttpServer}; use actix_files; use r2d2::Pool; use r2d2_sqlite::{self, SqliteConnectionManager}; use cheezenotes::commons::{Arguments, AppData}; use cheezenotes::{ page, index }; #[actix_web::main] async fn main() -> std::io::Result<()> { let args = Arguments::parse_args(); let ip = args.ip; let port = args.port; let root = args.root; let db = args.db; let manager = SqliteConnectionManager::file(db); let pool = Pool::new(manager).unwrap(); let appdata = AppData { name: String::from("CheezeNotes"), root, pool: pool.clone(), }; HttpServer::new(move || { App::new() .app_data(web::Data::new(appdata.to_owned())) .service(index::index) .service(actix_files::Files::new("/static", "./static")) .service(actix_files::Files::new("/static/modules", "./static/modules")) .service(page::page) .service(page::save_page) }) .bind((ip, port))? .run() .await }