spawn-cli 0.9.0

A command-line tool for creating files and folders from a template.
use anyhow::Result;

use crate::processor::actions::Write;

#[derive(Clone, Eq, PartialEq)]
pub(super) enum PromptResult {
    Yes,
    No,
    All,
    Diff,
}

pub(super) fn prompt(write: &Write) -> Result<PromptResult> {
    let message = format!("Are you sure you wish to replace '{}'?", write.name);
    let result = cliclack::select(&message)
        .item(PromptResult::Yes, "Yes", "Replace this file")
        .item(PromptResult::No, "No", "Skip this file")
        .item(PromptResult::All, "All", "Replace all remaining files")
        .item(PromptResult::Diff, "Diff", "Show differences first")
        .interact()?;

    Ok(result)
}