diff --git a/packages/cli/src/cli/create.rs b/packages/cli/src/cli/create.rs index 940a055f4..3b1644ed7 100644 --- a/packages/cli/src/cli/create.rs +++ b/packages/cli/src/cli/create.rs @@ -28,24 +28,20 @@ pub struct Create { impl Create { pub fn create(self) -> Result<()> { - let mut args = GenerateArgs { + let args = GenerateArgs { + define: self.option, + name: self.name, + silent: self.yes, template_path: TemplatePath { auto_path: Some(self.template), subfolder: self.subtemplate, ..Default::default() }, - define: self.option, ..Default::default() }; - if self.yes { - if self.name.is_none() { - return Err( - "You have to provide the project's name when using `--yes` option.".into(), - ); - } - args.silent = true; + if self.yes && args.name.is_none() { + return Err("You have to provide the project's name when using `--yes` option.".into()); } - args.name = self.name; let path = cargo_generate::generate(args)?; post_create(&path) } diff --git a/packages/cli/src/cli/init.rs b/packages/cli/src/cli/init.rs index 8b3223226..3d4959b15 100644 --- a/packages/cli/src/cli/init.rs +++ b/packages/cli/src/cli/init.rs @@ -29,20 +29,18 @@ impl Init { let name = std::env::current_dir()? .file_name() .map(|f| f.to_str().unwrap().to_string()); - let mut args = GenerateArgs { + let args = GenerateArgs { + define: self.option, + init: true, + name, + silent: self.yes, template_path: TemplatePath { auto_path: Some(self.template), subfolder: self.subtemplate, ..Default::default() }, - name, - init: true, - define: self.option, ..Default::default() }; - if self.yes { - args.silent = true; - } let path = cargo_generate::generate(args)?; create::post_create(&path) }