From 6fcf48ed61d1d4bb990f4e88e18f0c31d891dc2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Mon, 27 Nov 2023 20:53:30 +0100 Subject: [PATCH] feat: redirect `pg_isready` output to /dev/null Fixed bug where restore commands were called inside pg_isready loop. Made CommandBuilder::build public. Redirected stdout for pg_isready calls to /dev/null via Stdio::null(). --- src/command_builder.rs | 2 +- src/scripts/postgres.rs | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/command_builder.rs b/src/command_builder.rs index 063dd8a..01faca1 100644 --- a/src/command_builder.rs +++ b/src/command_builder.rs @@ -63,7 +63,7 @@ impl CommandBuilder { self } - fn build(self) -> Result { + pub fn build(self) -> Result { debug_println!("-----\n{self}\n-----"); let (first, rest) = self.args.split_first().context("empty args")?; diff --git a/src/scripts/postgres.rs b/src/scripts/postgres.rs index 528f997..0153fe4 100644 --- a/src/scripts/postgres.rs +++ b/src/scripts/postgres.rs @@ -8,7 +8,7 @@ use std::{ }; use super::docker_compose; -use crate::command_builder::CommandBuilder; +use crate::{command_builder::CommandBuilder, debug_println}; fn get_containers() -> Result<[String; 2]> { // get db container @@ -55,18 +55,20 @@ pub fn import(file: &Path) -> Result<()> { ]; for command in commands { - println!("waiting until pg_isready"); + debug_println!("waiting until pg_isready"); while !CommandBuilder::docker() .args(&format!( "exec {db_container} pg_isready -h postgresdb -p 5432 -U db", )) + .build()? + .stdout(Stdio::null()) .spawn()? .wait()? .success() { thread::sleep(Duration::from_secs(1)); - CommandBuilder::docker().args(&command).exec()?; } + CommandBuilder::docker().args(&command).exec()?; } println!("restarting containers");