use arcature_templates::{Database, Frontend as TemplateFrontend, Preset};
use crate::cli::NewOptions;
use crate::error::CommandError;
use crate::project::Frontend;
pub(crate) fn execute(options: NewOptions) -> Result<(), CommandError> {
let frontend = match Frontend::from(options.frontend) {
Frontend::React => TemplateFrontend::React,
Frontend::Vue => TemplateFrontend::Vue,
};
let database = if options.no_db {
Database::Disabled
} else {
Database::Enabled
};
let preset = Preset::new(frontend, database);
arcature_templates::generate(&options.destination, preset)?;
println!("created {}", options.destination.display());
println!(
"next: cd {} && pnpm --dir frontend install",
options.destination.display()
);
Ok(())
}