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  }