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.
43 lines
1.1 KiB
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
|
|
}
|