66 "flag"
77 "fmt"
88 "io"
9- "io/ioutil"
109 "os"
1110 "sort"
1211)
@@ -15,7 +14,6 @@ const (
1514 exitOK = iota
1615 exitOpenFile
1716 exitReadInput
18- exitJSONDecode
1917 exitFormStatements
2018 exitFetchURL
2119 exitParseStatements
@@ -36,7 +34,6 @@ func init() {
3634 h += fmt .Sprintf (" %d\t %s\n " , exitOK , "OK" )
3735 h += fmt .Sprintf (" %d\t %s\n " , exitOpenFile , "Failed to open file" )
3836 h += fmt .Sprintf (" %d\t %s\n " , exitReadInput , "Failed to read input" )
39- h += fmt .Sprintf (" %d\t %s\n " , exitJSONDecode , "Failed to decode JSON" )
4037 h += fmt .Sprintf (" %d\t %s\n " , exitFormStatements , "Failed to form statements" )
4138 h += fmt .Sprintf (" %d\t %s\n " , exitFetchURL , "Failed to fetch URL" )
4239 h += fmt .Sprintf (" %d\t %s\n " , exitParseStatements , "Failed to parse statements" )
@@ -99,21 +96,7 @@ func main() {
9996
10097func gron (r io.Reader , w io.Writer ) (int , error ) {
10198
102- b , err := ioutil .ReadAll (r )
103- if err != nil {
104- return exitReadInput , fmt .Errorf ("failed to read input: %s" , err )
105- }
106-
107- // The 'JSON' might be an object, array or scalar, so the
108- // best we can do for now is an empty interface type
109- var top interface {}
110-
111- err = json .Unmarshal (b , & top )
112- if err != nil {
113- return exitJSONDecode , fmt .Errorf ("failed to decode JSON: %s" , err )
114- }
115-
116- ss , err := makeStatements ("json" , top )
99+ ss , err := makeStatementsFromJSON (r )
117100 if err != nil {
118101 return exitFormStatements , fmt .Errorf ("failed to form statements: %s" , err )
119102 }
0 commit comments