From 92196dcbf85120d8b5c73a7422e0b0e9aff693db Mon Sep 17 00:00:00 2001 From: Ondrej Novak Date: Mon, 6 Jul 2026 22:26:46 +0200 Subject: [PATCH] create image output parent directory if nonexistent --- waybar-collectd/src/runner.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/waybar-collectd/src/runner.rs b/waybar-collectd/src/runner.rs index 2fbbd4f..471e183 100644 --- a/waybar-collectd/src/runner.rs +++ b/waybar-collectd/src/runner.rs @@ -1,5 +1,5 @@ use core::fmt; -use std::time::SystemTime; +use std::{fs, time::SystemTime}; use draw::{StackedConfig, StackedSeries, StackedSeriesConfig, stacked}; use imageproc::image::codecs::pnm::SampleEncoding; @@ -95,6 +95,15 @@ impl Runner { self.last_sample = now; for g in &mut self.graphs { + let path = std::path::Path::new(&g.series.config.path) + .parent() + .expect("wrong target directory"); + if !fs::exists(path).unwrap_or(false) { + fs::create_dir(path).map_err(|_| { + RunnerError::CouldNotSaveImage("cannot create parent directory".to_string()) + })?; + } + // fill in empty samples for missing data if dt >= 2. { let dt_round = dt.round() as u32;