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 {  | 
