diff options
author | Tomasz Kramkowski <tomasz@kramkow.ski> | 2025-07-09 21:30:39 +0100 |
---|---|---|
committer | Tomasz Kramkowski <tomasz@kramkow.ski> | 2025-07-09 21:30:56 +0100 |
commit | e82745382ebd3515937ab214e7f86532ae6cb111 (patch) | |
tree | 4bb77515449f5d2f3ef8ec531733dd13a16601f5 | |
parent | 238bd1f811e8e1285b12fb11554a5ab7890452d4 (diff) | |
download | mqttr-e82745382ebd3515937ab214e7f86532ae6cb111.tar.gz mqttr-e82745382ebd3515937ab214e7f86532ae6cb111.tar.xz mqttr-e82745382ebd3515937ab214e7f86532ae6cb111.zip |
Return exit status from run
-rw-r--r-- | src/main.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 072f5eb..396c66a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,11 @@ // TODO: Log levels -use std::{path::PathBuf, process::Stdio, rc::Rc}; +use std::{ + path::PathBuf, + process::{ExitStatus, Stdio}, + rc::Rc, +}; use anyhow::Context; use rumqttc::{Event::Incoming, Packet, Publish, QoS}; @@ -13,7 +17,7 @@ mod config; const PROGRAM: &str = "mqttr"; -async fn run(program: &[String], message: &Publish) -> anyhow::Result<()> { +async fn run(program: &[String], message: &Publish) -> anyhow::Result<ExitStatus> { let mut command = Command::new(&program[0]); command .args(&program[1..]) @@ -28,8 +32,8 @@ async fn run(program: &[String], message: &Publish) -> anyhow::Result<()> { let mut stdin = proc.stdin.take().context("No stdin")?; stdin.write_all(&message.payload).await?; drop(stdin); - println!("{}", proc.wait().await?); - Ok(()) + let result = proc.wait().await?; + Ok(result) } fn topic_match(filter: &str, topic: &str) -> bool { |