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.
42 lines
1.0 KiB
42 lines
1.0 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 };
|
|
|
|
#[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
|
|
}
|