mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 21:42:34 +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",
|
"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]]
|
[[package]]
|
||||||
name = "httparse"
|
name = "httparse"
|
||||||
version = "1.10.1"
|
version = "1.10.1"
|
||||||
@@ -2816,6 +2822,7 @@ dependencies = [
|
|||||||
"thiserror 2.0.12",
|
"thiserror 2.0.12",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tower",
|
"tower",
|
||||||
|
"tower-http",
|
||||||
"tower-sessions",
|
"tower-sessions",
|
||||||
"tracing",
|
"tracing",
|
||||||
"url",
|
"url",
|
||||||
@@ -3776,12 +3783,20 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"bytes",
|
"bytes",
|
||||||
|
"futures-core",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http",
|
"http",
|
||||||
"http-body",
|
"http-body",
|
||||||
"http-body-util",
|
"http-body-util",
|
||||||
|
"http-range-header",
|
||||||
|
"httpdate",
|
||||||
"iri-string",
|
"iri-string",
|
||||||
|
"mime",
|
||||||
|
"mime_guess",
|
||||||
|
"percent-encoding",
|
||||||
"pin-project-lite",
|
"pin-project-lite",
|
||||||
|
"tokio",
|
||||||
|
"tokio-util",
|
||||||
"tower",
|
"tower",
|
||||||
"tower-layer",
|
"tower-layer",
|
||||||
"tower-service",
|
"tower-service",
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ publish = false
|
|||||||
|
|
||||||
[features]
|
[features]
|
||||||
debug = ["opentelemetry"]
|
debug = ["opentelemetry"]
|
||||||
|
frontend-dev = ["rustical_frontend/dev"]
|
||||||
opentelemetry = [
|
opentelemetry = [
|
||||||
"dep:opentelemetry",
|
"dep:opentelemetry",
|
||||||
"dep:opentelemetry-otlp",
|
"dep:opentelemetry-otlp",
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ repository.workspace = true
|
|||||||
license.workspace = true
|
license.workspace = true
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = []
|
||||||
|
dev = ["tower-http/fs"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tower.workspace = true
|
tower.workspace = true
|
||||||
http.workspace = true
|
http.workspace = true
|
||||||
@@ -34,3 +38,4 @@ axum-extra.workspace = true
|
|||||||
headers.workspace = true
|
headers.workspace = true
|
||||||
tower-sessions.workspace = true
|
tower-sessions.workspace = true
|
||||||
percent-encoding.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;
|
pub use config::FrontendConfig;
|
||||||
use oidc_user_store::OidcUserStore;
|
use oidc_user_store::OidcUserStore;
|
||||||
|
|
||||||
use crate::{
|
use crate::routes::{
|
||||||
assets::{Assets, EmbedService},
|
addressbook::{
|
||||||
routes::{
|
route_addressbook, route_addressbook_restore, route_create_addressbook,
|
||||||
addressbook::{
|
route_delete_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},
|
|
||||||
},
|
},
|
||||||
|
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>(
|
pub fn frontend_router<AP: AuthenticationProvider, CS: CalendarStore, AS: AddressbookStore>(
|
||||||
prefix: &'static str,
|
prefix: &'static str,
|
||||||
@@ -93,8 +92,15 @@ pub fn frontend_router<AP: AuthenticationProvider, CS: CalendarStore, AS: Addres
|
|||||||
post(route_addressbook_restore::<AS>),
|
post(route_addressbook_restore::<AS>),
|
||||||
)
|
)
|
||||||
.route("/login", get(route_get_login).post(route_post_login::<AP>))
|
.route("/login", get(route_get_login).post(route_post_login::<AP>))
|
||||||
.route("/logout", post(route_post_logout))
|
.route("/logout", post(route_post_logout));
|
||||||
.route_service("/assets/{*file}", EmbedService::<Assets>::new());
|
|
||||||
|
#[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() {
|
if let Some(oidc_config) = oidc_config.clone() {
|
||||||
router = router
|
router = router
|
||||||
|
|||||||
Reference in New Issue
Block a user