kuma

Форк
0
/
display.go 
45 строк · 849.0 Байт
1
package config
2

3
import (
4
	"encoding/json"
5
	"os"
6
	"reflect"
7

8
	"sigs.k8s.io/yaml"
9
)
10

11
func ConfigForDisplay(cfg Config) (Config, error) {
12
	// copy config so we don't override values, because nested structs in config are pointers
13
	newCfg, err := copyConfig(cfg)
14
	if err != nil {
15
		return nil, err
16
	}
17
	newCfg.Sanitize()
18
	return newCfg, nil
19
}
20

21
func copyConfig(cfg Config) (Config, error) {
22
	cfgBytes, err := json.Marshal(cfg)
23
	if err != nil {
24
		return nil, err
25
	}
26

27
	newCfg := reflect.New(reflect.TypeOf(cfg).Elem()).Interface().(Config)
28
	if err := json.Unmarshal(cfgBytes, newCfg); err != nil {
29
		return nil, err
30
	}
31
	return newCfg, nil
32
}
33

34
func DumpToFile(filename string, cfg Config) error {
35
	if err := cfg.Validate(); err != nil {
36
		return err
37
	}
38

39
	b, err := yaml.Marshal(cfg)
40
	if err != nil {
41
		return err
42
	}
43

44
	return os.WriteFile(filename, b, 0o600)
45
}
46

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

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

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

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