Added command line util to call linter

main
oabrivard 2 years ago
parent 903337e184
commit 63ea359c00

@ -0,0 +1,55 @@
package main
import (
"fmt"
"io"
"os"
"gitea.paas.celticinfo.fr/oabrivard/gojson/linter"
)
func isInputFromPipe() bool {
fileInfo, _ := os.Stdin.Stat()
return fileInfo.Mode()&os.ModeCharDevice == 0
}
func main() {
var f *os.File
if isInputFromPipe() {
f = os.Stdin
} else {
fileName := ""
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "gojson filename\n")
os.Exit(1)
} else {
fileName = os.Args[1]
}
var err error
f, err = os.Open(fileName)
if err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(1)
}
defer f.Close()
}
bytes, err := io.ReadAll(f)
if err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(1)
}
jl := linter.NewJsonLinter(string(bytes))
result, err := jl.Lint()
if err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(1)
}
fmt.Println(result)
}
Loading…
Cancel
Save