enhance: improve logging

This commit is contained in:
Compositr 2024-11-02 17:15:42 +11:00
parent c5fa5fb07b
commit 98394d2885
2 changed files with 32 additions and 18 deletions

View file

@ -53,7 +53,6 @@ impl Icons {
pub fn get_icon(&self, icon: &str) -> Option<Vec<u8>> { pub fn get_icon(&self, icon: &str) -> Option<Vec<u8>> {
let icon_path = format!("{}/{}.svg", self.icons_dir_path, icon); let icon_path = format!("{}/{}.svg", self.icons_dir_path, icon);
println!("Reading icon: {}", icon_path);
fs::read(icon_path).ok() fs::read(icon_path).ok()
} }
} }

View file

@ -15,8 +15,13 @@ mod icons;
fn main() { fn main() {
println!("luciders starting..."); println!("luciders starting...");
let listener = let port = match std::env::var("PORT") {
TcpListener::bind("[::]:7878").unwrap_or_else(|_| fatal("Failed to bind to address")); Ok(port) => port,
Err(_) => "7878".to_string(),
};
let listener = TcpListener::bind(format!("[::]:{}", port))
.unwrap_or_else(|_| fatal("Failed to bind to address"));
ctrlc::set_handler(move || { ctrlc::set_handler(move || {
println!("Shutting down..."); println!("Shutting down...");
@ -59,7 +64,10 @@ fn main() {
let icon = match icons.get_icon(icon_name) { let icon = match icons.get_icon(icon_name) {
Some(icon) => icon, Some(icon) => icon,
None => return Response::new(req, 500, Body::Static("Failed to read icon")), None => {
error("Failed to read icon");
return Response::new(req, 500, Body::Static("Failed to read icon"));
}
}; };
return Response::new(req, 200, Body::Bytes(icon, "image/svg+xml")); return Response::new(req, 200, Body::Bytes(icon, "image/svg+xml"));
@ -86,12 +94,16 @@ fn main() {
let icon = match icons.get_icon(icon_name) { let icon = match icons.get_icon(icon_name) {
Some(icon) => icon, Some(icon) => icon,
None => return Response::new(req, 500, Body::Static("Failed to read icon")), None => {
error("Failed to read icon");
return Response::new(req, 500, Body::Static("Failed to read icon"))
},
}; };
let tree = match usvg::Tree::from_data(&icon, &usvg::Options::default()) { let tree = match usvg::Tree::from_data(&icon, &usvg::Options::default()) {
Ok(tree) => tree, Ok(tree) => tree,
Err(_) => { Err(e) => {
error(&format!("Failed to load icon into tree: {}", e));
return Response::new(req, 500, Body::Static("Failed to load icon into tree")) return Response::new(req, 500, Body::Static("Failed to load icon into tree"))
} }
}; };
@ -107,9 +119,7 @@ fn main() {
} }
scale = scale_val; scale = scale_val;
} }
Err(_) => { Err(_) => return Response::new(req, 400, Body::Static("Invalid scale value. Scale value must be an integer > 0 and <= 100"))
return Response::new(req, 400, Body::Static("Invalid scale value. Scale value must be an integer > 0 and <= 100"));
}
} }
} }
None => {} None => {}
@ -126,9 +136,7 @@ fn main() {
padding = padding_val; padding = padding_val;
} }
Err(_) => { Err(_) => return Response::new(req, 400, Body::Static("Invalid padding value. Padding value must be an integer >= 0 and <= 100"))
return Response::new(req, 400, Body::Static("Invalid padding value. Padding value must be an integer >= 0 and <= 100"));
}
} }
} }
None => {} None => {}
@ -147,9 +155,7 @@ fn main() {
let blue = (background_val & 0xFF) as u8; let blue = (background_val & 0xFF) as u8;
background = Color::from_rgba8(red, green, blue, 255); background = Color::from_rgba8(red, green, blue, 255);
} }
Err(_) => { Err(_) => return Response::new(req, 400, Body::Static("Invalid background value. Background value must be a valid hex color"))
return Response::new(req, 400, Body::Static("Invalid background value. Background value must be a valid hex color"));
}
} }
} }
None => {} None => {}
@ -159,7 +165,10 @@ fn main() {
let mut pixmap = match Pixmap::new(length, length) { let mut pixmap = match Pixmap::new(length, length) {
Some(pixmap) => pixmap, Some(pixmap) => pixmap,
None => return Response::new(req, 500, Body::Static("Failed to create pixmap")), None => {
error("Failed to create pixmap");
return Response::new(req, 500, Body::Static("Failed to create pixmap"))
},
}; };
let mut pixmap_mut = pixmap.as_mut(); let mut pixmap_mut = pixmap.as_mut();
@ -173,7 +182,10 @@ fn main() {
); );
let png = match pixmap.encode_png() { let png = match pixmap.encode_png() {
Ok(png) => png, Ok(png) => png,
Err(_) => return Response::new(req, 500, Body::Static("Failed to encode PNG")), Err(e) => {
error(&format!("Failed to encode PNG: {}", e));
return Response::new(req, 500, Body::Static("Failed to encode PNG"))
},
}; };
return Response::new(req, 200, Body::Bytes(png, "image/png")); return Response::new(req, 200, Body::Bytes(png, "image/png"));
@ -181,6 +193,9 @@ fn main() {
}); });
handlers.bind(listener); handlers.bind(listener);
println!("luciders started on port {}", port);
println!("Serving {} icons", icons_rc.icons_len())
} }
fn fatal(msg: &'static str) -> ! { fn fatal(msg: &'static str) -> ! {
@ -188,6 +203,6 @@ fn fatal(msg: &'static str) -> ! {
process::exit(1); process::exit(1);
} }
fn error(msg: &'static str) { fn error(msg: &str) {
eprintln!("[ERROR] {}", msg); eprintln!("[ERROR] {}", msg);
} }