add 'new --edit'

This commit is contained in:
timeshifter
2023-01-12 11:32:35 +01:00
parent dd20b3640a
commit 0e60e46f78
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)
.about("create new group files")
.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)),
)
.subcommand(
+11 -3
View File
@@ -215,17 +215,25 @@ impl Pacdef {
Ok(())
}
fn new_groups(&self, files: &ArgMatches) -> Result<()> {
let paths = get_assumed_group_file_names(files)?;
fn new_groups(&self, arg: &ArgMatches) -> Result<()> {
let paths = get_assumed_group_file_names(arg)?;
for file in &paths {
ensure!(!file.exists(), "group already exists under {file:?}");
}
for file in paths {
for file in &paths {
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(())
}
}