Compare commits

..

4 Commits

Author SHA1 Message Date
353288bc05 Load configuration in server main
Some checks failed
Push Workflows / rustfmt (push) Failing after 5s
Push Workflows / tailwind-build (push) Successful in 5s
Push Workflows / test (push) Failing after 18s
Push Workflows / docs (push) Successful in 19s
Push Workflows / clippy (push) Failing after 15s
Push Workflows / build (push) Failing after 41s
Push Workflows / nix-build (push) Has been cancelled
2026-06-23 21:29:13 -04:00
5cbfa6ac9e Add web server launch message 2026-06-23 21:27:00 -04:00
f34aeafe0e Return Result from server main 2026-06-23 21:26:14 -04:00
1b8d382906 Add function to create Error from message String 2026-06-23 21:24:21 -04:00
3 changed files with 24 additions and 3 deletions

View File

@@ -23,7 +23,12 @@ fn main() {
}
#[cfg(feature = "server")]
fn main() {
fn main() -> std::process::ExitCode {
tracing_setup();
server::main()
if let Err(e) = server::main() {
tracing::error!("Server main failed:\n{e}");
}
std::process::ExitCode::FAILURE
}

View File

@@ -1,9 +1,19 @@
use crate::App;
use crate::util::error::Error;
use crate::server::config;
pub fn main() {
pub fn main() -> Result<()> {
if let Err(e) = dotenvy::dotenv() {
tracing::warn!("Error reading .env: {e}");
}
tracing::debug!("Loading configuration...");
let config = config::load_config()
.map_err(|e| Error::message_here(e.to_string()))
.err_context("Failed to load config")?;
tracing::info!("Setup complete, launching web server...");
dioxus::launch(App);
Err(Error::message_here("Web server exited"))
}

View File

@@ -74,6 +74,12 @@ impl Error {
}
}
/// Creates a new basic `Error` at this location with the given message
#[track_caller]
pub fn message_here<S: Into<String>>(message: S) -> Self {
Error::new(ErrorType::Error(message.into()), ErrorLocation::here())
}
/// Adds a context message to the error
#[track_caller]
pub fn with_context(mut self, context: impl Into<String>) -> Self {