From 75ff8bf4d542e37c972735163d6d5b1d748200e5 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Wed, 18 Feb 2015 23:06:15 +0700 Subject: [PATCH] Main program parses stdin --- main.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ run.go | 22 ---------------------- 2 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 main.go delete mode 100644 run.go diff --git a/main.go b/main.go new file mode 100644 index 0000000..da1303a --- /dev/null +++ b/main.go @@ -0,0 +1,44 @@ +package main + +import ( + "flag" + "fmt" + "os" + "strings" + + "github.com/localhots/punk/buffer" + "github.com/localhots/punk/parser" +) + +func main() { + var ( + sel string + verbose bool + ) + flag.StringVar(&sel, "s", "", "Selector") + flag.BoolVar(&verbose, "v", false, "Verbose parsing") + flag.Parse() + + if len(sel) == 0 && !verbose { + fmt.Println("No selectors given and parser is not verbose") + os.Exit(1) + } + + sels := strings.Split(sel, " ") + if len(sel) == 0 { + sels = []string{} + } + buf := buffer.NewStreamBuffer(os.Stdin) + pars := parser.New(buf, sels) + if verbose { + pars.Debug() + } + res := pars.ParseStream() + for { + if m, ok := <-res; ok { + fmt.Println(m.Sel, m.Val) + } else { + break + } + } +} diff --git a/run.go b/run.go deleted file mode 100644 index b010fe4..0000000 --- a/run.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "os" - - "github.com/kr/pretty" - "github.com/localhots/punk/buffer" - "github.com/localhots/punk/parser" -) - -func main() { - f, _ := os.Open("test.json") - // b, _ := ioutil.ReadAll(f) - buf := buffer.NewStreamBuffer(f) - - p := parser.New(buf, []string{ - "/prices/*", - "/bananas/[*]/weight", - }) - res := p.Parse() - pretty.Println(res) -}