#[cfg(feature = "website")]
pub mod deploy;
#[cfg(feature = "website")]
pub mod files;
#[cfg(feature = "website")]
pub mod generations;
use axum::http::StatusCode;
use serde::Serialize;
use crate::error::AppError;
use crate::server::AppState;
fn require_website_config<'a>(
state: &'a AppState,
) -> Result<tokio::sync::RwLockReadGuard<'a, crate::config::AppConfig>, AppError> {
let cfg = state.config.try_read().map_err(|_| {
AppError::Internal("could not acquire config read lock for website route".into())
})?;
if cfg.website.root_dir.is_none() {
return Err(AppError::Validation(
"website.root_dir is not configured; set it in the daemon config to enable website management".into(),
));
}
Ok(cfg)
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WebsiteWriteResponse {
pub path: String,
pub etag: String,
pub size_bytes: u64,
}
#[allow(dead_code)]
fn _suppress_unused_status(_s: StatusCode) {}