From e69c69abd74ebbf126a3548fa932e22d787f40d1 Mon Sep 17 00:00:00 2001 From: Andrew Voynov <37143421+Andrew15-5@users.noreply.github.com> Date: Wed, 15 May 2024 21:29:50 +0300 Subject: [PATCH] chore(cli): optimized args handling for init & new (#2418) --- packages/cli/src/cli/create.rs | 16 ++++++---------- packages/cli/src/cli/init.rs | 12 +++++------- 2 files changed, 11 insertions(+), 17 deletions(-) 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) }