You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CheezeNotes/src/main.rs

43 lines
1.1 KiB

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, domain };
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let args = Arguments::parse_args();
let ip = args.ip;
let port = args.port;
let base_url = args.root;
let db = args.db;
let manager = SqliteConnectionManager::file(db);
let pool = Pool::new(manager).unwrap();
let appdata = AppData {
app_name: String::from("CheezeNotes"),
base_url,
db_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)
.service(domain::domain)
})
.bind((ip, port))?
.run()
.await
}