-
Notifications
You must be signed in to change notification settings - Fork 509
/
config_util.go
42 lines (37 loc) · 1 KB
/
config_util.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
package client
import (
"context"
"github.com/datawire/dlib/dlog"
"github.com/telepresenceio/telepresence/v2/pkg/log"
)
func MergeAndReplace(c context.Context, defaults *Config, priority *Config, root bool) error {
if defaults == nil {
c := GetDefaultConfig()
defaults = &c
}
defaults.Merge(priority)
ReplaceConfig(c, defaults)
return ReloadDaemonConfig(c, root)
}
func RestoreDefaults(c context.Context, root bool) error {
pri, err := LoadConfig(c)
if err != nil {
return err
}
return MergeAndReplace(c, nil, pri, root)
}
// ReloadDaemonConfig calls SetLevel with the log level defined
// for the rootDaemon or userDaemon
// depending on the root flag. Assumes that the config has already been reloaded.
func ReloadDaemonConfig(c context.Context, root bool) error {
newCfg := GetConfig(c)
var level string
if root {
level = newCfg.LogLevels.RootDaemon.String()
} else {
level = newCfg.LogLevels.UserDaemon.String()
}
log.SetLevel(c, level)
dlog.Info(c, "Configuration reloaded")
return nil
}