package main
import (
"flag"
"fmt"
"github.com/bilibili/gengine/engine"
"os"
"regexp"
)
var config struct {
endpoint string
image string
}
func init() {
flag.StringVar(&config.endpoint, "endpoint",
"unix:/var/run/capsule8/sensor.sock",
"Capsule8 gRPC API endpoint")
flag.StringVar(&config.image, "image", "",
"container image wildcard pattern to monitor")
}
var rules3 = `
rule "3" "" salience 0
begin
println("--------------------------")
temp = Event["outside"]
println(temp["nest"])
println("--------------------------")
end
`
func main() {
apis := make(map[string]interface{})
apis["println"] = fmt.Println
apis["regMatch"] = regexp.MatchString
pool, e := engine.NewGenginePool(10, 20, 1, rules3, apis)
if e != nil {
panic(e)
}
tmpApisOrData := make(map[string]interface{})
m := map[string]map[string]string{}
var mm = make(map[string]string)
mm["nest"] = "hello world"
m["outside"] = mm
tmpApisOrData["Event"] = m
err, _ := pool.Execute(tmpApisOrData, true)
if err != nil {
fmt.Fprintf(os.Stderr, "Recv: %s\n", err)
os.Exit(1)
}
}