jirun 0.7.0

A Cli Generating JIRA sub-tasks from a template with a specified parent
Documentation
use crate::config::JiraConfig;
use std::io::{self, Write};

pub fn print_task_summary(
    parent: &str,
    config: &JiraConfig,
    tasks: &[String],
    assignee_override: Option<&str>,
) -> Result<(), Box<dyn std::error::Error>> {
    println!("-----");
    println!("Parent: {parent}\n");

    println!("Prefill:");
    println!("-----");
    if let Some(labels) = &config.prefill.labels {
        for label in labels {
            println!("🏷️  Label: {label}");
        }
    }
    if let Some(assignee) = assignee_override.or(config.prefill.assignee.as_deref()) {
        println!("👤 Assignee: {assignee} (effective)");
    } else {
        println!("👤 Assignee: (none)");
    }

    println!("\nTasks:");
    println!("-----");
    for (i, task) in tasks.iter().enumerate() {
        println!("{}. {}", i + 1, task);
    }
    println!();

    Ok(())
}

pub fn prompt_confirm() -> Result<bool, Box<dyn std::error::Error>> {
    print!("\n✅ Proceed with creating these sub-tasks? [y/N]: ");
    io::stdout().flush()?;

    let mut input = String::new();
    io::stdin().read_line(&mut input)?;
    let answer = input.trim().to_lowercase();

    Ok(matches!(answer.as_str(), "y" | "yes"))
}