cranberry

Форк
0
58 строк · 1.3 Кб
1
package config
2

3
import (
4
	"io/ioutil"
5
	"log"
6

7
	"gopkg.in/yaml.v2"
8
)
9

10
// GRPCConfig содержит настройки для gRPC сервиса
11
type GRPCConfig struct {
12
	Host string `yaml:"host"`
13
	Port int    `yaml:"port"`
14
}
15

16
// DBConfig содержит настройки для базы данных
17
type DBConfig struct {
18
	Host     string `yaml:"host"`
19
	Port     int    `yaml:"port"`
20
	Login    string `yaml:"login"`
21
	Password string `yaml:"password"`
22
	SqlPath  string `yaml:"sql_path"`
23
}
24

25
type Genesis struct {
26
	Addr    string `yaml:"addr"`
27
	Balance uint64 `yaml:"balance"`
28
}
29

30
// AppConfig объединяет все настройки приложения
31
type Config struct {
32
	GRPC      GRPCConfig `yaml:"grpc"`
33
	DB        DBConfig   `yaml:"db"`
34
	Genesis   Genesis    `yaml:"genesis"`
35
	Validator Validator  `yaml:"validator"`
36
	Peers     []string   `yaml:"peers"`
37
}
38

39
type Validator struct {
40
	Seed string `yaml:"seed"`
41
}
42

43
func ReadConfig(path string) *Config {
44
	data, err := ioutil.ReadFile(path)
45
	if err != nil {
46
		log.Fatalf("error reading config file: %v", err)
47
	}
48

49
	// Создаем объект для хранения данных
50
	var config Config
51

52
	// Парсим YAML
53
	err = yaml.Unmarshal(data, &config)
54
	if err != nil {
55
		log.Fatalf("error parsing YAML: %v", err)
56
	}
57
	return &config
58
}
59

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

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

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

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