From d53b86d3ca2610544da5388ec4682d53a07eea0a Mon Sep 17 00:00:00 2001 From: Joscha Date: Thu, 27 Feb 2025 14:52:18 +0100 Subject: [PATCH] Check for printer before printing backlog --- showbits-thermal-printer/src/persistent_printer.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/showbits-thermal-printer/src/persistent_printer.rs b/showbits-thermal-printer/src/persistent_printer.rs index 0b63c9c..4fc0c10 100644 --- a/showbits-thermal-printer/src/persistent_printer.rs +++ b/showbits-thermal-printer/src/persistent_printer.rs @@ -100,6 +100,13 @@ impl PersistentPrinter { } pub fn print_backlog(&mut self) -> anyhow::Result<()> { + // Don't try to print if the chances of success are zero. + if let Some(file) = &self.printer_file { + if !file.exists() { + return Ok(()); + } + } + let mut files = vec![]; match self.queue_dir.read_dir() { @@ -127,7 +134,9 @@ impl PersistentPrinter { if self.print_image_robustly(&image).is_err() { return Ok(()); } - fs::remove_file(&file)?; + fs::remove_file(&file) + .with_context(|| format!("At {}", file.display())) + .context("Failed to remove printed image")?; } Ok(())