- Add `Logger`, `Config`
- Back to `nixos-unstable`
- `nix flake update`
This commit is contained in:
Jens K.
2024-12-04 13:29:58 +01:00
committed by GitHub
parent b815b1f5eb
commit 634884d483
11 changed files with 418 additions and 55 deletions

View File

@@ -1,22 +1,26 @@
use std::io::{stdout, Stdout};
use std::io;
use color_eyre::eyre::Result;
use crossterm::{execute, terminal::*};
use crossterm::{
cursor, execute,
terminal::{EnterAlternateScreen, LeaveAlternateScreen},
};
use ratatui::{backend::CrosstermBackend, Terminal as RatatuiTerminal};
pub type Terminal = RatatuiTerminal<CrosstermBackend<Stdout>>;
pub type Terminal = RatatuiTerminal<CrosstermBackend<io::Stdout>>;
pub fn init() -> Result<Terminal> {
enable_raw_mode()?;
execute!(stdout(), EnterAlternateScreen)?;
let mut terminal = RatatuiTerminal::new(CrosstermBackend::new(stdout()))?;
pub fn setup() -> Result<Terminal> {
let mut stdout = std::io::stdout();
crossterm::terminal::enable_raw_mode()?;
execute!(stdout, EnterAlternateScreen, cursor::Hide)?;
let mut terminal = RatatuiTerminal::new(CrosstermBackend::new(stdout))?;
terminal.clear()?;
terminal.hide_cursor()?;
Ok(terminal)
}
pub fn restore() -> Result<()> {
execute!(stdout(), LeaveAlternateScreen)?;
disable_raw_mode()?;
pub fn teardown() -> Result<()> {
execute!(io::stdout(), LeaveAlternateScreen, cursor::Show)?;
crossterm::terminal::disable_raw_mode()?;
Ok(())
}