diff options
-rw-r--r-- | src/cmd/watch.rs | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/cmd/watch.rs b/src/cmd/watch.rs index 01340ff..d36a614 100644 --- a/src/cmd/watch.rs +++ b/src/cmd/watch.rs @@ -330,13 +330,7 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> id, ); self.state.watching(client); - crossterm::execute!( - std::io::stdout(), - crossterm::terminal::Clear( - crossterm::terminal::ClearType::All - ) - ) - .context(crate::error::WriteTerminalCrossterm)?; + clear()?; } } _ => {} @@ -422,11 +416,7 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> } fn display_loading_screen(&self) -> Result<()> { - crossterm::execute!( - std::io::stdout(), - crossterm::terminal::Clear(crossterm::terminal::ClearType::All) - ) - .context(crate::error::WriteTerminalCrossterm)?; + clear()?; println!("loading...\r"); if let Some(err) = self.list_client.last_error() { @@ -492,11 +482,7 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> - watch_width - 3; - crossterm::execute!( - std::io::stdout(), - crossterm::terminal::Clear(crossterm::terminal::ClearType::All) - ) - .context(crate::error::WriteTerminalCrossterm)?; + clear()?; println!("welcome to teleterm\r"); println!("available sessions:\r"); println!("\r"); @@ -727,6 +713,15 @@ fn truncate(s: &str, len: usize) -> String { } } +fn clear() -> Result<()> { + crossterm::execute!( + std::io::stdout(), + crossterm::cursor::MoveTo(0, 0), + crossterm::terminal::Clear(crossterm::terminal::ClearType::All) + ) + .context(crate::error::WriteTerminalCrossterm) +} + #[cfg(test)] mod test { use super::*; |