diff options
author | Ashelyn Rose <git@ashen.earth> | 2025-04-26 21:06:00 -0600 |
---|---|---|
committer | Ashelyn Rose <git@ashen.earth> | 2025-04-26 21:06:00 -0600 |
commit | 2dacece4eedc8af2ccde3be6918371293350cc4e (patch) | |
tree | 81364da50cad615cd387f38d1abcc62102939033 /src/main.rs | |
parent | 619373a261ad18c51cd09bc61d116f585c8295ec (diff) |
Convert to rocket and morgana no-leptos
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 77 |
1 files changed, 14 insertions, 63 deletions
diff --git a/src/main.rs b/src/main.rs index 8cffc27..b358bb6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,66 +1,17 @@ -#[cfg(feature = "ssr")] -#[tokio::main] -async fn main() { - use axum::{response::Redirect, routing::get, Router}; - use leptos::logging::log; - use leptos::prelude::*; - use leptos_axum::{generate_route_list, LeptosRoutes}; - use stormscribe::components::app::*; - let conf = get_configuration(None).unwrap(); - let addr = conf.leptos_options.site_addr; - let leptos_options = conf.leptos_options; - // Generate the list of routes in your Leptos App - let routes = generate_route_list(App); - - let app = Router::new() - .route("/", get(|| async { Redirect::temporary("/~/") })) - .leptos_routes(&leptos_options, routes, { - let leptos_options = leptos_options.clone(); - move || shell(leptos_options.clone()) - }) - .fallback(leptos_axum::file_and_error_handler(shell)) - .with_state(leptos_options); - - // run our app with hyper - // `axum::Server` is a re-export of `hyper::Server` - log!("listening on http://{}", &addr); - let listener = tokio::net::TcpListener::bind(&addr).await.unwrap(); - axum::serve(listener, app.into_make_service()) - .with_graceful_shutdown(shutdown_signal()) - .await - .unwrap(); -} - -#[cfg(feature = "ssr")] -async fn shutdown_signal() { - use tokio::signal; - let ctrl_c = async { - signal::ctrl_c() - .await - .expect("could not install SIGINT handler") - }; - - #[cfg(unix)] - let terminate = async { - signal::unix::signal(signal::unix::SignalKind::terminate()) - .expect("could not install SIGTERM handler") - .recv() - .await; - }; - - #[cfg(not(unix))] - let terminate = std::future::pending::<()>(); - - tokio::select! { - _ = ctrl_c => {}, - _ = terminate => {}, - } +#[macro_use] extern crate rocket; +use rocket::fs::{FileServer, relative}; +mod data; +mod components; +mod routes; + +#[launch] +async fn stormscribe() -> _ { + rocket::build() + .mount("/", FileServer::from(relative!("./public")).rank(-10)) + .mount("/", routes![ + routes::render_page, + routes::render_editor, + ]) } -#[cfg(not(feature = "ssr"))] -pub fn main() { - // no client-side main function - // unless we want this to work with e.g., Trunk for pure client-side testing - // see lib.rs for hydration function instead -} |