purwa-cli 0.2.0

Empu — Purwa CLI (Artisan-equivalent)
//! Filesystem helpers for codegen.

use std::io;
use std::path::Path;

#[derive(Clone, Copy)]
pub struct GlobalOpts {
    pub verbose: bool,
    pub dry_run: bool,
}

pub fn write_output(path: &Path, content: &str, opts: GlobalOpts) -> io::Result<()> {
    if opts.dry_run {
        println!("--- {} ---\n{}\n", path.display(), content);
        return Ok(());
    }
    if let Some(parent) = path.parent() {
        std::fs::create_dir_all(parent)?;
    }
    std::fs::write(path, content)?;
    if opts.verbose {
        eprintln!("Wrote {}", path.display());
    }
    Ok(())
}