also accept data from stdin
This commit is contained in:
parent
3dfe7ec69d
commit
49fbbe5545
1 changed files with 19 additions and 3 deletions
22
main.go
22
main.go
|
@ -6,11 +6,12 @@ import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
|
termutil "github.com/andrew-d/go-termutil"
|
||||||
"gopkg.in/alecthomas/kingpin.v2"
|
"gopkg.in/alecthomas/kingpin.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
inFile = kingpin.Arg("file", "TOML file.").Required().ExistingFile()
|
inFile = kingpin.Arg("file", "TOML file.").String()
|
||||||
quiet = kingpin.Flag("quiet", "Don't output on success.").Short('q').Bool()
|
quiet = kingpin.Flag("quiet", "Don't output on success.").Short('q').Bool()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -20,10 +21,14 @@ func main() {
|
||||||
kingpin.CommandLine.HelpFlag.Short('h')
|
kingpin.CommandLine.HelpFlag.Short('h')
|
||||||
kingpin.Parse()
|
kingpin.Parse()
|
||||||
|
|
||||||
data, _ := ioutil.ReadFile(*inFile)
|
data, err := readPipeOrFile(*inFile)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("error:", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
var f interface{}
|
var f interface{}
|
||||||
_, err := toml.Decode(string(data), &f)
|
_, err = toml.Decode(string(data), &f)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("ERROR:", *inFile, err)
|
fmt.Println("ERROR:", *inFile, err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
@ -33,3 +38,14 @@ func main() {
|
||||||
fmt.Println("OK:", *inFile)
|
fmt.Println("OK:", *inFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// readPipeOrFile reads from stdin if pipe exists, else from provided file
|
||||||
|
func readPipeOrFile(fileName string) ([]byte, error) {
|
||||||
|
if !termutil.Isatty(os.Stdin.Fd()) {
|
||||||
|
return ioutil.ReadAll(os.Stdin)
|
||||||
|
}
|
||||||
|
if fileName == "" {
|
||||||
|
return nil, fmt.Errorf("no piped data and no file provided")
|
||||||
|
}
|
||||||
|
return ioutil.ReadFile(fileName)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue