aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs44
1 files changed, 19 insertions, 25 deletions
diff --git a/src/main.rs b/src/main.rs
index 5a0b050..b7a3249 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,10 +1,10 @@
#![feature(box_syntax)]
-use crate::frontend::{pages::ContentType, style::CSS_BUNDLE};
-use actix_web::{get, web, App, HttpServer, Responder};
+use crate::frontend::style::CSS_BUNDLE;
use database::Database;
use frontend::pages::{home::page_home, node::page_library_node};
use library::Library;
+use rocket::{get, http::ContentType, launch, routes};
use std::fs::read_to_string;
pub mod database;
@@ -13,15 +13,15 @@ pub mod library;
pub mod metadata;
#[get("/assets/style.css")]
-async fn assets_style() -> impl Responder {
- if cfg!(debug_assertions) {
- ContentType(
- "text/css",
- read_to_string("src/frontend/style/layout.css").unwrap(),
- )
- } else {
- ContentType("text/css", CSS_BUNDLE.to_string())
- }
+async fn assets_style() -> (ContentType, String) {
+ (
+ ContentType::CSS,
+ if cfg!(debug_assertions) {
+ read_to_string("src/frontend/style/layout.css").unwrap()
+ } else {
+ CSS_BUNDLE.to_string()
+ },
+ )
}
pub struct AppState {
@@ -29,23 +29,17 @@ pub struct AppState {
pub library: Library,
}
-#[actix_web::main]
-async fn main() -> std::io::Result<()> {
+#[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 = web::Data::new(AppState {
+ let state = AppState {
library: Library::open(&lib_path).unwrap(),
database: Database::open(&db_path).unwrap(),
- });
- HttpServer::new(move || {
- App::new()
- .app_data(state.clone())
- .service(page_home)
- .service(assets_style)
- .service(page_library_node)
- })
- .bind(("127.0.0.1", 8080))?
- .run()
- .await
+ };
+
+ rocket::build()
+ .manage(state)
+ .mount("/", routes![page_home, page_library_node, assets_style])
}