ollie/tools/filetools/cmd/file_write/main.go

26 lines
537 B
Go

package main
import (
"encoding/json"
"fmt"
"ollie/tools/filetools/internal/filetools"
"os"
)
func main() { run(filetools.Write) }
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) }