-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
41 lines (38 loc) · 1.09 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main
import (
"flag"
"github.com/adrianmester/gobox/pkgs/logging"
"github.com/adrianmester/gobox/proto"
"google.golang.org/grpc"
"net"
)
func main() {
var (
listenAddress string
dataDir string
help bool
debug bool
)
flag.StringVar(&listenAddress, "listen", "localhost:5555", "address to listen on (<host>:<port>)")
flag.StringVar(&dataDir, "datadir", "./datadir/server", "path to directory to store files")
flag.BoolVar(&help, "help", false, "show usage information")
flag.BoolVar(&debug, "debug", false, "enable debug logging")
flag.Parse()
if help {
flag.Usage()
return
}
log := logging.GetLogger("server", debug)
lis, err := net.Listen("tcp", listenAddress)
if err != nil {
log.Fatal().Err(err).Msg("Failed to start server")
}
opts := []grpc.ServerOption{}
grpcServer := grpc.NewServer(opts...)
proto.RegisterGoBoxServer(grpcServer, NewGoBoxServer(&log, dataDir))
log.Info().Str("address", listenAddress).Str("datadir", dataDir).Msg("Starting server")
err = grpcServer.Serve(lis)
if err != nil {
log.Error().Err(err).Msg("Server error")
}
}