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)); + } +}