use {
crate::*,
crossterm::{
self, cursor,
event::{DisableMouseCapture, EnableMouseCapture},
terminal::{EnterAlternateScreen, LeaveAlternateScreen},
QueueableCommand,
},
std::{
env,
io::{self, Write},
path::{Path, PathBuf},
str::FromStr,
},
};
pub type W = std::io::Stderr;
pub fn writer() -> W {
std::io::stderr()
}
pub fn run() -> Result<()> {
let mut w = writer();
w.queue(EnterAlternateScreen)?;
w.queue(cursor::DisableBlinking)?;
w.queue(cursor::Hide)?;
let r = app::run(&mut w);
w.queue(cursor::Show)?;
w.queue(cursor::EnableBlinking)?;
w.queue(LeaveAlternateScreen)?;
w.flush()?;
r
}