From ab04d88ae84c33f3577870c10378f0166adf27bc Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 24 Jun 2021 11:45:07 +0200 Subject: Add spinner for establishing database connection Signed-off-by: Matthias Beyer --- src/db/connection.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/db') diff --git a/src/db/connection.rs b/src/db/connection.rs index cf9a0c0..76d38c1 100644 --- a/src/db/connection.rs +++ b/src/db/connection.rs @@ -19,6 +19,7 @@ use getset::Getters; use log::debug; use crate::config::Configuration; +use crate::util::progress::ProgressBars; #[derive(Getters)] pub struct DbConnectionConfig<'a> { @@ -78,7 +79,7 @@ impl<'a> DbConnectionConfig<'a> { }) } - pub fn establish_connection(self) -> Result { + pub fn establish_connection(self, progressbars: &ProgressBars) -> Result { debug!("Trying to connect to database: {:?}", self); let database_uri: String = format!( "postgres://{user}:{password}@{host}:{port}/{name}?connect_timeout={timeout}", @@ -89,7 +90,17 @@ impl<'a> DbConnectionConfig<'a> { name = self.database_name, timeout = self.database_connection_timeout, ); - PgConnection::establish(&database_uri).map_err(Error::from) + + let bar = progressbars.spinner(); + bar.set_message("Establishing database connection"); + + let conn = PgConnection::establish(&database_uri).map_err(Error::from); + if conn.is_err() { + bar.finish_with_message("Connection could not be established"); + } else { + bar.finish_with_message("Connection established"); + } + conn } } -- cgit v1.2.3