From 09b4d36a72b2483a0f85184de903387297bec775 Mon Sep 17 00:00:00 2001 From: licsber Date: Thu, 19 Sep 2024 17:22:59 +0800 Subject: [PATCH] use inherit to print output. --- src/retry.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/retry.rs diff --git a/src/retry.rs b/src/retry.rs new file mode 100644 index 0000000..11be4db --- /dev/null +++ b/src/retry.rs @@ -0,0 +1,21 @@ +use std::process::{Command, Stdio}; +use std::thread; +use std::time::Duration; + +pub fn retry(cmd: &str, cmd_args: &[String]) { + loop { + let mut child = Command::new(cmd) + .args(cmd_args) + .stdout(Stdio::inherit()) + .stderr(Stdio::inherit()) + .spawn() + .expect("Failed to spawn command."); + + if child.wait().unwrap().success() { + break; + } + + println!("Error, wait 1s for retry."); + thread::sleep(Duration::from_secs(1)); + } +}