From 2eab71a641827e503b14952373aec82661192ba2 Mon Sep 17 00:00:00 2001 From: sigoden Date: Thu, 20 Jun 2024 11:26:45 +0800 Subject: feat: rag hybrid search (#618) --- src/utils/spinner.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/utils') diff --git a/src/utils/spinner.rs b/src/utils/spinner.rs index c746469..72fd868 100644 --- a/src/utils/spinner.rs +++ b/src/utils/spinner.rs @@ -1,5 +1,6 @@ use anyhow::Result; use crossterm::{cursor, queue, style, terminal}; +use is_terminal::IsTerminal; use std::{ io::{stdout, Stdout, Write}, time::Duration, @@ -76,6 +77,7 @@ async fn run_spinner_inner( mut message_rx: mpsc::UnboundedReceiver, ) -> Result<()> { let mut writer = stdout(); + let is_stdout_terminal = stdout().is_terminal(); let mut spinner = Spinner::new(&message); let mut interval = interval(Duration::from_millis(50)); tokio::select! { @@ -83,7 +85,9 @@ async fn run_spinner_inner( loop { tokio::select! { _ = interval.tick() => { - let _ = spinner.step(&mut writer); + if is_stdout_terminal { + let _ = spinner.step(&mut writer); + } } message = message_rx.recv() => { if let Some(message) = message { @@ -94,7 +98,9 @@ async fn run_spinner_inner( } } => {} _ = stop_rx => { - spinner.stop(&mut writer)?; + if is_stdout_terminal { + spinner.stop(&mut writer)?; + } } } Ok(()) -- cgit v1.2.3