add 'new --edit'

This commit is contained in:
steven-omaha
2023-01-12 11:32:35 +01:00
parent f05be4cce0
commit 3502e0a70b
2 changed files with 18 additions and 3 deletions
+7
View File
@@ -29,6 +29,13 @@ fn get_arg_parser() -> Command<'static> {
Command::new(NEW) Command::new(NEW)
.about("create new group files") .about("create new group files")
.arg_required_else_help(true) .arg_required_else_help(true)
.arg(
Arg::new("edit")
.short('e')
.long("edit")
.help("edit the new group files after creation")
.action(clap::ArgAction::SetTrue),
)
.arg(Arg::new("groups").multiple_values(true)), .arg(Arg::new("groups").multiple_values(true)),
) )
.subcommand( .subcommand(
+11 -3
View File
@@ -215,17 +215,25 @@ impl Pacdef {
Ok(()) Ok(())
} }
fn new_groups(&self, files: &ArgMatches) -> Result<()> { fn new_groups(&self, arg: &ArgMatches) -> Result<()> {
let paths = get_assumed_group_file_names(files)?; let paths = get_assumed_group_file_names(arg)?;
for file in &paths { for file in &paths {
ensure!(!file.exists(), "group already exists under {file:?}"); ensure!(!file.exists(), "group already exists under {file:?}");
} }
for file in paths { for file in &paths {
File::create(file)?; File::create(file)?;
} }
if arg.get_flag("edit") {
let success = run_edit_command(&paths)
.context("running editor")?
.success();
ensure!(success, "editor exited with error");
}
Ok(()) Ok(())
} }
} }