mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-09-01 02:34:02 +03:00
FILE / ScuroNeko/mtg
cli/utils.go
Исходный файл и его история в репозитории.
44 lines
750 B
Go
44 lines
750 B
Go
package cli
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
func Fatal(arg interface{}) {
|
|
if value, ok := arg.(error); ok {
|
|
arg = fmt.Errorf("fatal error: %+v", value) // nolint: errorlint
|
|
}
|
|
|
|
PrintStderr(arg)
|
|
os.Exit(1)
|
|
}
|
|
|
|
func PrintStderr(args ...interface{}) {
|
|
fmt.Fprintln(os.Stderr, args...)
|
|
}
|
|
|
|
func PrintStdout(args ...interface{}) {
|
|
fmt.Println(args...) // nolint: forbidigo
|
|
}
|
|
|
|
func PrintJSONStderr(data interface{}) {
|
|
printJSON(os.Stderr, data)
|
|
}
|
|
|
|
func PrintJSONStdout(data interface{}) {
|
|
printJSON(os.Stdout, data)
|
|
}
|
|
|
|
func printJSON(writer io.Writer, data interface{}) {
|
|
encoder := json.NewEncoder(writer)
|
|
encoder.SetEscapeHTML(false)
|
|
encoder.SetIndent("", " ")
|
|
|
|
if err := encoder.Encode(data); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|