add 'new --edit'
This commit is contained in:
@@ -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
@@ -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(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user