-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
46 lines (37 loc) · 1.02 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
42
43
44
45
46
package main
import (
"github.com/chellams/web-scraper/internal/config"
crawl "github.com/chellams/web-scraper/internal/scrape"
"github.com/chellams/web-scraper/internal/service"
"github.com/gosidekick/goconfig"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func main() {
serverConfig := mustGetServerConfig()
initLog(serverConfig.LogLevel)
scraper := crawl.NewScraper()
server := service.NewScraper(scraper)
if serverConfig.IsGRPCEnabled {
grpcServer := NewGServer(server, serverConfig.Address)
grpcServer.Serve()
} else {
restServer := NewRestServer(scraper, serverConfig.Address)
restServer.Serve()
}
}
func initLog(logLevel string) {
zerolog.SetGlobalLevel(zerolog.InfoLevel)
if logLevel == "debug" {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
}
func mustGetServerConfig() *config.ServerConfig {
serverConfig := &config.ServerConfig{}
err := goconfig.Parse(serverConfig)
if err != nil {
log.Err(err).Msg("error in initialising server configuration")
return nil
}
return serverConfig
}