use std::process::Command; // TODO: Rewrite this bad fn pub fn spawn_udev() -> Result<(), Box> { let udevd_paths = [ "/sbin/udevd", "/usr/sbin/udevd", "/bin/udevd", "/usr/bin/udevd", ]; let udevd_path = udevd_paths .iter() .find(|path| std::path::Path::new(path).exists()) .ok_or_else(|| -> Box { "udevd not found in standard locations".into() })?; let mut child = Command::new(udevd_path).arg("--daemon").spawn().map_err( |e| -> Box { format!("Failed to spawn udevd: {}", e).into() }, )?; child.wait()?; Command::new(udevd_path).arg("--trigger").output().map_err( |e| -> Box { format!("Failed to trigger udev: {}", e).into() }, )?; Ok(()) }