use crate::cache;
use crate::generate;
use crate::install::{self, Tool};
use crate::PBAR;
use anyhow::Result;
use log::info;
pub fn generate(template: String, name: String, install_permitted: bool) -> Result<()> {
info!("Generating a new rustwasm project...");
let download = install::download_prebuilt_or_cargo_install(
Tool::CargoGenerate,
&cache::get_wasm_pack_cache()?,
"latest",
install_permitted,
)?;
generate::generate(&template, &name, &download)?;
let msg = format!("🐑 Generated new project at /{}", name);
PBAR.info(&msg);
Ok(())
}