#![allow(unexpected_cfgs)]

use blizz::{Branch, WizardStep};

#[cfg(not(tarpaulin_include))]
fn main() -> std::io::Result<()> {
  let steps = vec![
    WizardStep::dialog("Welcome to Blizz! Let's get you set up."),
    WizardStep::select(
      "Which editor do you use?",
      "EDITOR",
      vec![
        ("VS Code", "vscode"),
        ("Cursor", "cursor"),
        ("Neovim", "neovim"),
        ("Helix", "helix"),
        ("Emacs", "emacs"),
        ("Zed", "zed"),
        ("Sublime Text", "sublime"),
        ("IntelliJ IDEA", "intellij"),
        ("Vim", "vim"),
        ("Nano", "nano"),
        ("Kakoune", "kakoune"),
        ("Other", "other"),
      ],
    ),
    WizardStep::confirm(
      "Install the shell shim?",
      "INSTALL_SHIM",
      Branch::Next,
      Branch::Goto("done"),
    ),
    WizardStep::prompt("Where should we install it?", "SHIM_PATH", "~/.local/bin"),
    WizardStep::dialog("All set — enjoy Blizz!").id("done"),
  ];

  let result = blizz::run_wizard(&steps)?;
  println!("{result}");
  Ok(())
}

#[cfg(tarpaulin_include)]
fn main() {}
