From 32cb7b2857a6eb4b8532225078ff8164207da6f2 Mon Sep 17 00:00:00 2001 From: Tw Date: Mon, 28 Mar 2022 10:48:01 +0800 Subject: [PATCH] editinacme: support editing multiple files Signed-off-by: Tw --- acme/editinacme/main.go | 51 +++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/acme/editinacme/main.go b/acme/editinacme/main.go index 5ce5739..751c78a 100644 --- a/acme/editinacme/main.go +++ b/acme/editinacme/main.go @@ -6,7 +6,7 @@ // // Usage: // -// editinacme +// editinacme [...] // // Editinacme uses the plumber to ask acme to open the file, // waits until the file's acme window is deleted, and exits. @@ -27,41 +27,38 @@ func main() { log.SetFlags(0) log.SetPrefix("editinacme: ") flag.Usage = func() { - fmt.Fprintf(os.Stderr, "usage: editinacme file\n") + fmt.Fprintf(os.Stderr, "usage: editinacme file1 [file2]...\n") os.Exit(2) } flag.Parse() - if flag.NArg() != 1 { - flag.Usage() - } - - file := flag.Arg(0) - - fullpath, err := filepath.Abs(file) - if err != nil { - log.Fatal(err) - } - file = fullpath - r, err := acme.Log() - if err != nil { - log.Fatal(err) - } + for _, file := range flag.Args() { + fullpath, err := filepath.Abs(file) + if err != nil { + log.Fatal(err) + } + file = fullpath - log.Printf("editing %s", file) + r, err := acme.Log() + if err != nil { + log.Fatal(err) + } - out, err := exec.Command("plumb", "-d", "edit", file).CombinedOutput() - if err != nil { - log.Fatalf("executing plumb: %v\n%s", err, out) - } + log.Printf("editing %s", file) - for { - ev, err := r.Read() + out, err := exec.Command("plumb", "-d", "edit", file).CombinedOutput() if err != nil { - log.Fatalf("reading acme log: %v", err) + log.Fatalf("executing plumb: %v\n%s", err, out) } - if ev.Op == "del" && ev.Name == file { - break + + for { + ev, err := r.Read() + if err != nil { + log.Fatalf("reading acme log: %v", err) + } + if ev.Op == "del" && ev.Name == file { + break + } } } }