use std::path::PathBuf;
use anyhow::{Context, Result};
use clap::Parser;
use eml2md::{formatter::format_markdown, parse_eml};
#[derive(Parser, Debug)]
#[command(name = "eml2md", version, about, long_about = None)]
struct Args {
#[arg(short, long, required = true)]
input: PathBuf,
#[arg(short, long, required = true)]
output: PathBuf,
#[arg(short, long, default_value = "simple")]
format: String,
}
fn main() -> Result<()> {
let args = Args::parse();
let email = parse_eml(&args.input)
.with_context(|| format!("Failed to parse EML file: {}", args.input.display()))?;
let markdown = format_markdown(&email, &args.format);
std::fs::write(&args.output, &markdown)
.with_context(|| format!("Failed to write output file: {}", args.output.display()))?;
println!(
"Successfully converted {} to {}",
args.input.display(),
args.output.display()
);
Ok(())
}