26 lines
536 B
Go
26 lines
536 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"ollie/tools/filetools/internal/filetools"
|
|
"os"
|
|
)
|
|
|
|
func main() { run(filetools.Edit) }
|
|
func run(fn func(map[string]any) (string, error)) {
|
|
var m map[string]any
|
|
if err := json.NewDecoder(os.Stdin).Decode(&m); err != nil {
|
|
fail("invalid JSON input: %v", err)
|
|
}
|
|
out, err := fn(m)
|
|
if err != nil {
|
|
if out != "" {
|
|
fmt.Fprintln(os.Stdout, out)
|
|
}
|
|
fail("%v", err)
|
|
}
|
|
fmt.Println(out)
|
|
}
|
|
func fail(f string, a ...any) { fmt.Fprintf(os.Stderr, "error: "+f+"\n", a...); os.Exit(1) }
|