main.go (971B)
1 // Example: Pagination of long resource result content. 2 package main 3 4 import ( 5 "context" 6 "flag" 7 "fmt" 8 "os" 9 "path" 10 11 testdataloader "github.com/peteole/testdata-loader" 12 13 fsdb "git.defalsify.org/vise.git/db/fs" 14 "git.defalsify.org/vise.git/engine" 15 "git.defalsify.org/vise.git/resource" 16 ) 17 18 var ( 19 baseDir = testdataloader.GetBasePath() 20 scriptDir = path.Join(baseDir, "examples", "longmenu") 21 ) 22 23 func main() { 24 var size uint 25 flag.UintVar(&size, "s", 0, "max size of output") 26 flag.Parse() 27 28 ctx := context.Background() 29 store := fsdb.NewFsDb() 30 err := store.Connect(ctx, scriptDir) 31 if err != nil { 32 fmt.Fprintf(os.Stderr, "db connect error: %v", err) 33 os.Exit(1) 34 } 35 rs := resource.NewDbResource(store) 36 defer rs.Close(ctx) 37 cfg := engine.Config{ 38 OutputSize: uint32(size), 39 } 40 en := engine.NewEngine(cfg, rs) 41 err = engine.Loop(ctx, en, os.Stdin, os.Stdout, nil) 42 if err != nil { 43 fmt.Fprintf(os.Stderr, "loop exited with error: %v\n", err) 44 os.Exit(1) 45 } 46 }