gohome

Форк
0
/
config.go 
47 строк · 756.0 Байт
1
package config
2

3
import (
4
	"path"
5
	"strings"
6

7
	"github.com/kelseyhightower/envconfig"
8
	"go.uber.org/config"
9
	"go.uber.org/fx"
10

11
	"gohome.4gophers.ru/getapp/gohome/app/server"
12
	"gohome.4gophers.ru/getapp/gohome/pkg/logger"
13
)
14

15
type Config struct {
16
	fx.Out
17

18
	Logger logger.Config
19
	Server server.Config
20
}
21

22
func New(env string, cfg string) Config {
23
	if env == "base" {
24
		panic("'base' can not be environment")
25
	}
26

27
	y, err := config.NewYAML(
28
		config.File(path.Join(cfg, "base.yml")),
29
		config.File(path.Join(cfg, env+".yml")),
30
	)
31
	if err != nil {
32
		panic(err)
33
	}
34

35
	c := Config{}
36
	err = y.Get("").Populate(&c)
37
	if err != nil {
38
		panic(err)
39
	}
40

41
	err = envconfig.Process(strings.ReplaceAll("lokalization", "-", ""), &c)
42
	if err != nil {
43
		panic(err)
44
	}
45

46
	return c
47
}
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.