MCPcopy Create free account
hub / github.com/dallay/agentsync / run_experimental_tui_intro

Function run_experimental_tui_intro

src/init.rs:1542–1580  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1540}
1541
1542fn run_experimental_tui_intro() -> Result<ExperimentalTuiIntroOutcome> {
1543 use crossterm::{
1544 event::{self, Event, KeyCode},
1545 execute,
1546 terminal::{EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode, enable_raw_mode},
1547 };
1548 use ratatui::{Terminal, backend::CrosstermBackend};
1549
1550 struct TerminalGuard;
1551
1552 impl Drop for TerminalGuard {
1553 fn drop(&mut self) {
1554 let _ = disable_raw_mode();
1555 let _ = execute!(io::stdout(), LeaveAlternateScreen);
1556 }
1557 }
1558
1559 enable_raw_mode()?;
1560 let _guard = TerminalGuard;
1561 execute!(io::stdout(), EnterAlternateScreen)?;
1562
1563 let backend = CrosstermBackend::new(io::stdout());
1564 let mut terminal = Terminal::new(backend)?;
1565 terminal.clear()?;
1566
1567 loop {
1568 terminal.draw(render_experimental_tui_intro_frame)?;
1569
1570 if let Event::Key(key) = event::read()? {
1571 match key.code {
1572 KeyCode::Enter => return Ok(ExperimentalTuiIntroOutcome::Continue),
1573 KeyCode::Esc | KeyCode::Char('q') => {
1574 return Ok(ExperimentalTuiIntroOutcome::Cancelled);
1575 }
1576 _ => {}
1577 }
1578 }
1579 }
1580}
1581
1582/// Interactive wizard for initializing agentsync with file migration
1583pub fn init_wizard(project_root: &Path, force: bool) -> Result<()> {

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected