github.com/Uptycs/basequery-go@v0.8.0/cmd/examples/distributed/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "flag" 6 "fmt" 7 "log" 8 9 "github.com/Uptycs/basequery-go" 10 "github.com/Uptycs/basequery-go/plugin/distributed" 11 ) 12 13 func main() { 14 socketPath := flag.String("socket", "", "path to osqueryd extensions socket") 15 flag.Int("timeout", 0, "") 16 flag.Int("interval", 0, "") 17 flag.Parse() 18 19 server, err := osquery.NewExtensionManagerServer("example_distributed", *socketPath) 20 if err != nil { 21 log.Fatalf("Error creating extension: %s\n", err) 22 } 23 server.RegisterPlugin(distributed.NewPlugin("example_distributed", getQueries, writeResults)) 24 if err := server.Run(); err != nil { 25 log.Fatal(err) 26 } 27 } 28 29 func getQueries(ctx context.Context) (*distributed.GetQueriesResult, error) { 30 return &distributed.GetQueriesResult{Queries: map[string]string{"time": "select * from time"}}, nil 31 } 32 33 func writeResults(ctx context.Context, results []distributed.Result) error { 34 fmt.Println(results) 35 return nil 36 }