use crate::*;
use miette::IntoDiagnostic;
#[derive(clap::Parser)]
pub struct Create {
path: std::path::PathBuf,
}
use rust_embed::RustEmbed;
#[derive(RustEmbed)]
#[folder = "examples"]
struct Hello;
impl RunCommand for Create {
fn run(&self, cli: &Cli) -> miette::Result<()> {
let path = cli.config.path_with_default_ext(&self.path);
if path.exists() {
eprintln!("Error: File {path:?} already exists.")
} else {
std::fs::write(
path.clone(),
Hello::get("hello.µcad")
.expect("embedded hello.µcad not found")
.data,
)
.into_diagnostic()?;
eprintln!("File {path:?} generated.")
}
Ok(())
}
}