fix: err on startup with a clear expect, rather than swallowing

This commit is contained in:
Lewis Wynne 2026-04-10 15:43:11 +01:00
parent 0e8d6e1f54
commit 2f842632a6
2 changed files with 13 additions and 4 deletions

View file

@ -16,7 +16,7 @@ async fn main() {
let listen = config.listen_addr();
let entries_dir = config.data_dir.join("entries");
std::fs::create_dir_all(&entries_dir).ok();
std::fs::create_dir_all(&entries_dir).expect("failed to create entries directory");
let (tx, rx) = tokio::sync::mpsc::channel::<(entries::Entry, Option<Vec<u8>>, Option<Vec<u8>>)>(32);

View file

@ -254,7 +254,10 @@ async fn submit(
let drawing_filename = if let Some(ref bytes) = drawing_bytes {
let drawing_name = format!("{prefix}.png");
let drawings_dir = state.config.data_dir.join("drawings");
std::fs::create_dir_all(&drawings_dir).ok();
if let Err(e) = std::fs::create_dir_all(&drawings_dir) {
tracing::error!("failed to create drawings directory: {e}");
return Html(render_error_page(&state.config, "Something went wrong. Please try again."));
}
if let Err(e) = std::fs::write(drawings_dir.join(&drawing_name), bytes) {
tracing::error!("failed to write drawing: {e}");
return Html(render_error_page(&state.config, "Something went wrong. Please try again."));
@ -267,7 +270,10 @@ async fn submit(
let voice_note_filename = if let Some(ref bytes) = voice_note_bytes {
let vn_name = format!("{prefix}.webm");
let vn_dir = state.config.data_dir.join("voice_notes");
std::fs::create_dir_all(&vn_dir).ok();
if let Err(e) = std::fs::create_dir_all(&vn_dir) {
tracing::error!("failed to create voice notes directory: {e}");
return Html(render_error_page(&state.config, "Something went wrong. Please try again."));
}
if let Err(e) = std::fs::write(vn_dir.join(&vn_name), bytes) {
tracing::error!("failed to write voice note: {e}");
return Html(render_error_page(&state.config, "Something went wrong. Please try again."));
@ -292,7 +298,10 @@ async fn submit(
// Write to disk
let entries_dir = state.config.data_dir.join("entries");
std::fs::create_dir_all(&entries_dir).ok();
if let Err(e) = std::fs::create_dir_all(&entries_dir) {
tracing::error!("failed to create entries directory: {e}");
return Html(render_error_page(&state.config, "Something went wrong. Please try again."));
}
let path = entries_dir.join(&filename);
if let Err(e) = std::fs::write(&path, entry.to_file_contents()) {
tracing::error!("failed to write entry: {e}");