1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-08 05:47:07 +09:00
anytype-heart/lib-debug/server/grpc.go
2020-05-01 18:10:22 +03:00

55 lines
1 KiB
Go

// +build !nogrpcserver,!_test
package main
import (
"fmt"
"log"
"net"
"os"
"os/signal"
"syscall"
"github.com/anytypeio/go-anytype-middleware/pb"
"google.golang.org/grpc"
"github.com/anytypeio/go-anytype-middleware/core"
"github.com/anytypeio/go-anytype-middleware/lib-debug"
)
const defaultAddr = "127.0.0.1:9999"
func main() {
var addr string
if len(os.Args) > 1 {
addr = os.Args[len(os.Args)-1]
} else if env := os.Getenv("ANYTYPE_GRPC_ADDR"); env != "" {
addr = env
} else {
addr = defaultAddr
}
var stopChan = make(chan os.Signal, 2)
signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM, syscall.SIGINT)
var mw = &core.Middleware{}
lis, err := net.Listen("tcp", addr)
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
grpcServer := grpc.NewServer()
lib.RegisterClientCommandsServer(grpcServer, mw)
fmt.Println("gRPC server started at: " + addr)
go func() {
grpcServer.Serve(lis)
}()
select {
case <-stopChan:
grpcServer.Stop()
mw.Shutdown(&pb.RpcShutdownRequest{})
return
}
}