yao/tests/plugins/user/user.go
2021-10-18 22:01:25 +08:00

42 lines
927 B
Go

package main
import (
"encoding/json"
"io"
"os"
"path"
"github.com/yaoapp/kun/grpc"
"github.com/yaoapp/kun/maps"
)
// user Here is a real implementation of plugin that writes to a local file with
// the key name and the contents are the value of the key.
type user struct{ grpc.Plugin }
// Exec 读取
func (user *user) Exec(name string, args ...interface{}) (*grpc.Response, error) {
user.Logger.Debug("message from user.Exec")
v := maps.MakeMap()
v.Set("name", name)
v.Set("args", args)
bytes, err := json.Marshal(v)
if err != nil {
return nil, err
}
return &grpc.Response{Bytes: bytes, Type: "map"}, nil
}
func main() {
var output io.Writer = os.Stderr
var logroot = os.Getenv("GOU_TEST_PLG_LOG")
if logroot != "" {
logfile, err := os.Create(path.Join(logroot, "user.log"))
if err == nil {
output = logfile
}
}
plugin := &user{}
plugin.SetLogger(output, grpc.Trace)
grpc.Serve(plugin)
}