Main program parses stdin
This commit is contained in:
		
							parent
							
								
									23577d7274
								
							
						
					
					
						commit
						75ff8bf4d5
					
				
							
								
								
									
										44
									
								
								main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								main.go
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								run.go
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								run.go
									
									
									
									
									
								
							@ -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)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user