Default values for config
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@ meta {
|
|||||||
}
|
}
|
||||||
|
|
||||||
grpc {
|
grpc {
|
||||||
url: localhost:8081
|
url: localhost:3000
|
||||||
method: /music_agregator.hello.v1.HelloService/Echo
|
method: /music_agregator.hello.v1.HelloService/Echo
|
||||||
body: grpc
|
body: grpc
|
||||||
protoPath: ../proto/music_agregator/hello/v1/service.proto
|
protoPath: ../proto/music_agregator/hello/v1/service.proto
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
@@ -32,10 +33,9 @@ func main() {
|
|||||||
log.Info().Interface("config", cfg).Msg("Loaded config")
|
log.Info().Interface("config", cfg).Msg("Loaded config")
|
||||||
|
|
||||||
// start the grpc in another thread to not block the next http start
|
// start the grpc in another thread to not block the next http start
|
||||||
go serveGrpc()
|
go serveGrpc(*cfg)
|
||||||
|
|
||||||
serveHttp()
|
serveHttp()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func serveHttp() {
|
func serveHttp() {
|
||||||
@@ -49,27 +49,30 @@ func serveHttp() {
|
|||||||
router.Run()
|
router.Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
func serveGrpc() {
|
func serveGrpc(config config.Config) {
|
||||||
var opts []grpc.ServerOption
|
var opts []grpc.ServerOption
|
||||||
server := grpc.NewServer(opts...)
|
server := grpc.NewServer(opts...)
|
||||||
|
|
||||||
helloServiceHandler := hello.NewHelloServer()
|
helloServiceHandler := hello.NewHelloServer()
|
||||||
pb.RegisterHelloServiceServer(server, helloServiceHandler)
|
pb.RegisterHelloServiceServer(server, helloServiceHandler)
|
||||||
listener, err := net.Listen("tcp", "localhost:8081")
|
listener, err := net.Listen("tcp", fmt.Sprintf("%v:%v", config.App.Host, config.App.Port))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal().Err(err).Msg("Failed to listen on localhost:8081")
|
log.Fatal().Err(err).Msg("Failed to listen on localhost:8081")
|
||||||
}
|
}
|
||||||
|
|
||||||
server.Serve(listener)
|
server.Serve(listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseConfig(path *string) (config.Config, error) {
|
func parseConfig(path *string) (*config.Config, error) {
|
||||||
f, err := os.Open(*path)
|
f, err := os.Open(*path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Str("path", *path).Msg("Unable to opent config by path")
|
log.Error().Str("path", *path).Msg("Unable to opent config by path")
|
||||||
return config.Config{}, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
|
||||||
var cfg config.Config
|
cfg := config.NewConfig()
|
||||||
decoder := yaml.NewDecoder(f)
|
decoder := yaml.NewDecoder(f)
|
||||||
err = decoder.Decode(&cfg)
|
err = decoder.Decode(&cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Server struct {
|
App struct {
|
||||||
Port string `yaml:"port"`
|
Port string `yaml:"port"`
|
||||||
Host string `yaml:"host"`
|
Host string `yaml:"host"`
|
||||||
} `yaml:"server"`
|
} `yaml:"app"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewConfig() *Config {
|
||||||
|
config := Config{}
|
||||||
|
config.App.Host = "localhost"
|
||||||
|
config.App.Port = "8080"
|
||||||
|
|
||||||
|
return &config
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user