@@ -2,6 +2,8 @@ package parse
22
33import (
44 "fmt"
5+ "os"
6+ "strings"
57
68 "github.com/jmespath/go-jmespath"
79 "github.com/spf13/cobra"
@@ -13,37 +15,41 @@ import (
1315var inFormat string
1416var outFormat string
1517var query string
16- var listMode bool
1718
1819func init () {
19- Cmd .Flags ().StringVarP (& inFormat , "from" , "f" , "auto" , "input format" )
20- Cmd .Flags ().StringVarP (& outFormat , "to" , "t" , "auto" , "output format" )
20+ Cmd .Flags ().StringVarP (& inFormat , "from" , "f" , "auto" , "input format (see please help parse for formats) " )
21+ Cmd .Flags ().StringVarP (& outFormat , "to" , "t" , "auto" , "output format (see please help parse for formats) " )
2122 Cmd .Flags ().StringVarP (& query , "query" , "q" , "" , "JMESPath query" )
22- Cmd .Flags ().BoolVarP (& listMode , "list" , "l" , false , "List available input and output types" )
23+
24+ formats := strings.Builder {}
25+ formats .WriteString ("Input formats:\n " )
26+ for _ , name := range please .Parsers {
27+ formats .WriteString (fmt .Sprintf (" %s\n " , name ))
28+ }
29+ formats .WriteString ("\n " )
30+ formats .WriteString ("Output formats:\n " )
31+ for _ , name := range please .Formatters {
32+ formats .WriteString (fmt .Sprintf (" %s\n " , name ))
33+ }
34+
35+ Cmd .Long = "Parse and converted structured data from FILENAME or stdin if omitted.\n \n " + formats .String ()
2336}
2437
2538var Cmd = & cobra.Command {
2639 Use : "parse (FILENAME)" ,
2740 Short : "Parse and convert structured data from FILENAME or stdin if omitted" ,
2841 Args : cobra .RangeArgs (0 , 1 ),
2942 Run : func (cmd * cobra.Command , args []string ) {
30- if listMode {
31- fmt .Println ("Input formats:" )
32- for _ , name := range please .Parsers {
33- fmt .Printf (" %s\n " , name )
34- }
35- fmt .Println ()
36- fmt .Println ("Output formats:" )
37- for _ , name := range please .Formatters {
38- fmt .Printf (" %s\n " , name )
43+ input , err := internal .ReadFileOrStdin (args ... )
44+ if err != nil {
45+ if len (args ) == 0 {
46+ fmt .Fprintln (os .Stderr , cmd .Short + "\n " )
47+ cmd .Usage ()
48+ os .Exit (1 )
3949 }
40- return
50+ cobra . CheckErr ( err )
4151 }
4252
43- // Read from stdin?
44- input , err := internal .ReadFileOrStdin (args ... )
45- cobra .CheckErr (err )
46-
4753 // Try parsing
4854 var parsed any
4955
0 commit comments