chore(cli): optimized args handling for init & new (#2418)

This commit is contained in:
Andrew Voynov authored and GitHub committed 2024-05-15 13:29:50 -05:00
1 parent 16313894da
commit e69c69abd7
2 files changed
+11 -17

No files matched your search

+6 -10
View File
@@ -28,24 +28,20 @@ pub struct Create {
impl Create { impl Create {
pub fn create(self) -> Result<()> { pub fn create(self) -> Result<()> {
let mut args = GenerateArgs { let args = GenerateArgs {
define: self.option,
name: self.name,
silent: self.yes,
template_path: TemplatePath { template_path: TemplatePath {
auto_path: Some(self.template), auto_path: Some(self.template),
subfolder: self.subtemplate, subfolder: self.subtemplate,
..Default::default() ..Default::default()
}, },
define: self.option,
..Default::default() ..Default::default()
}; };
if self.yes { if self.yes && args.name.is_none() {
if self.name.is_none() { return Err("You have to provide the project's name when using `--yes` option.".into());
return Err(
"You have to provide the project's name when using `--yes` option.".into(),
);
}
args.silent = true;
} }
args.name = self.name;
let path = cargo_generate::generate(args)?; let path = cargo_generate::generate(args)?;
post_create(&path) post_create(&path)
} }
+5 -7
View File
@@ -29,20 +29,18 @@ impl Init {
let name = std::env::current_dir()? let name = std::env::current_dir()?
.file_name() .file_name()
.map(|f| f.to_str().unwrap().to_string()); .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 { template_path: TemplatePath {
auto_path: Some(self.template), auto_path: Some(self.template),
subfolder: self.subtemplate, subfolder: self.subtemplate,
..Default::default() ..Default::default()
}, },
name,
init: true,
define: self.option,
..Default::default() ..Default::default()
}; };
if self.yes {
args.silent = true;
}
let path = cargo_generate::generate(args)?; let path = cargo_generate::generate(args)?;
create::post_create(&path) create::post_create(&path)
} }