mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 19:22:26 +00:00
Add dev feature to serve static files from source
This commit is contained in:
15
Cargo.lock
generated
15
Cargo.lock
generated
@@ -1222,6 +1222,12 @@ dependencies = [
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "http-range-header"
|
||||
version = "0.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c"
|
||||
|
||||
[[package]]
|
||||
name = "httparse"
|
||||
version = "1.10.1"
|
||||
@@ -2816,6 +2822,7 @@ dependencies = [
|
||||
"thiserror 2.0.12",
|
||||
"tokio",
|
||||
"tower",
|
||||
"tower-http",
|
||||
"tower-sessions",
|
||||
"tracing",
|
||||
"url",
|
||||
@@ -3776,12 +3783,20 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"bytes",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
"http-body-util",
|
||||
"http-range-header",
|
||||
"httpdate",
|
||||
"iri-string",
|
||||
"mime",
|
||||
"mime_guess",
|
||||
"percent-encoding",
|
||||
"pin-project-lite",
|
||||
"tokio",
|
||||
"tokio-util",
|
||||
"tower",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
|
||||
@@ -20,6 +20,7 @@ publish = false
|
||||
|
||||
[features]
|
||||
debug = ["opentelemetry"]
|
||||
frontend-dev = ["rustical_frontend/dev"]
|
||||
opentelemetry = [
|
||||
"dep:opentelemetry",
|
||||
"dep:opentelemetry-otlp",
|
||||
|
||||
@@ -7,6 +7,10 @@ repository.workspace = true
|
||||
license.workspace = true
|
||||
publish = false
|
||||
|
||||
[features]
|
||||
default = []
|
||||
dev = ["tower-http/fs"]
|
||||
|
||||
[dependencies]
|
||||
tower.workspace = true
|
||||
http.workspace = true
|
||||
@@ -34,3 +38,4 @@ axum-extra.workspace = true
|
||||
headers.workspace = true
|
||||
tower-sessions.workspace = true
|
||||
percent-encoding.workspace = true
|
||||
tower-http = { workspace = true, optional = true }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,21 +25,20 @@ mod routes;
|
||||
pub use config::FrontendConfig;
|
||||
use oidc_user_store::OidcUserStore;
|
||||
|
||||
use crate::{
|
||||
assets::{Assets, EmbedService},
|
||||
routes::{
|
||||
addressbook::{
|
||||
route_addressbook, route_addressbook_restore, route_create_addressbook,
|
||||
route_delete_addressbook,
|
||||
},
|
||||
app_token::{route_delete_app_token, route_post_app_token},
|
||||
calendar::{
|
||||
route_calendar, route_calendar_restore, route_create_calendar, route_delete_calendar,
|
||||
},
|
||||
login::{route_get_login, route_post_login, route_post_logout},
|
||||
user::{route_get_home, route_root, route_user_named},
|
||||
use crate::routes::{
|
||||
addressbook::{
|
||||
route_addressbook, route_addressbook_restore, route_create_addressbook,
|
||||
route_delete_addressbook,
|
||||
},
|
||||
app_token::{route_delete_app_token, route_post_app_token},
|
||||
calendar::{
|
||||
route_calendar, route_calendar_restore, route_create_calendar, route_delete_calendar,
|
||||
},
|
||||
login::{route_get_login, route_post_login, route_post_logout},
|
||||
user::{route_get_home, route_root, route_user_named},
|
||||
};
|
||||
#[cfg(not(feature = "dev"))]
|
||||
use assets::{Assets, EmbedService};
|
||||
|
||||
pub fn frontend_router<AP: AuthenticationProvider, CS: CalendarStore, AS: AddressbookStore>(
|
||||
prefix: &'static str,
|
||||
@@ -93,8 +92,15 @@ pub fn frontend_router<AP: AuthenticationProvider, CS: CalendarStore, AS: Addres
|
||||
post(route_addressbook_restore::<AS>),
|
||||
)
|
||||
.route("/login", get(route_get_login).post(route_post_login::<AP>))
|
||||
.route("/logout", post(route_post_logout))
|
||||
.route_service("/assets/{*file}", EmbedService::<Assets>::new());
|
||||
.route("/logout", post(route_post_logout));
|
||||
|
||||
#[cfg(not(feature = "dev"))]
|
||||
let mut router = router.route_service("/assets/{*file}", EmbedService::<Assets>::new());
|
||||
#[cfg(feature = "dev")]
|
||||
let mut router = router.nest_service(
|
||||
"/assets",
|
||||
tower_http::services::ServeDir::new(concat!(env!("CARGO_MANIFEST_DIR"), "/public/assets")),
|
||||
);
|
||||
|
||||
if let Some(oidc_config) = oidc_config.clone() {
|
||||
router = router
|
||||
|
||||
Reference in New Issue
Block a user