aboutsummaryrefslogtreecommitdiff
path: root/server/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-01-11 16:27:16 +0100
committermetamuffin <metamuffin@disroot.org>2023-01-11 16:27:16 +0100
commit948700d35f0eddbc2e0fd29548991e687362983d (patch)
tree29592f56a5db4998b03c4ddf6c330b25dfcad393 /server/src/main.rs
parent0d81cb164983fdb40a9f0daebd5951d3cdc084e6 (diff)
downloadjellything-948700d35f0eddbc2e0fd29548991e687362983d.tar
jellything-948700d35f0eddbc2e0fd29548991e687362983d.tar.bz2
jellything-948700d35f0eddbc2e0fd29548991e687362983d.tar.zst
move files
Diffstat (limited to 'server/src/main.rs')
-rw-r--r--server/src/main.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
new file mode 100644
index 0000000..b7a3249
--- /dev/null
+++ b/server/src/main.rs
@@ -0,0 +1,45 @@
+#![feature(box_syntax)]
+
+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;
+pub mod frontend;
+pub mod library;
+pub mod metadata;
+
+#[get("/assets/style.css")]
+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 {
+ pub database: Database,
+ pub library: Library,
+}
+
+#[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 = AppState {
+ library: Library::open(&lib_path).unwrap(),
+ database: Database::open(&db_path).unwrap(),
+ };
+
+ rocket::build()
+ .manage(state)
+ .mount("/", routes![page_home, page_library_node, assets_style])
+}