chore(config): upgrade to gosettings v0.4.0
- drop qdm12/govalid dependency - upgrade qdm12/ss-server to v0.6.0 - do not unset sensitive config settings (makes no sense to me)
This commit is contained in:
@@ -17,9 +17,7 @@ import (
|
||||
"github.com/qdm12/gluetun/internal/alpine"
|
||||
"github.com/qdm12/gluetun/internal/cli"
|
||||
"github.com/qdm12/gluetun/internal/configuration/settings"
|
||||
"github.com/qdm12/gluetun/internal/configuration/sources/env"
|
||||
"github.com/qdm12/gluetun/internal/configuration/sources/files"
|
||||
mux "github.com/qdm12/gluetun/internal/configuration/sources/merge"
|
||||
"github.com/qdm12/gluetun/internal/configuration/sources/secrets"
|
||||
"github.com/qdm12/gluetun/internal/constants"
|
||||
"github.com/qdm12/gluetun/internal/dns"
|
||||
@@ -45,6 +43,8 @@ import (
|
||||
"github.com/qdm12/gluetun/internal/updater/unzip"
|
||||
"github.com/qdm12/gluetun/internal/vpn"
|
||||
"github.com/qdm12/golibs/command"
|
||||
"github.com/qdm12/gosettings/reader"
|
||||
"github.com/qdm12/gosettings/reader/sources/env"
|
||||
"github.com/qdm12/goshutdown"
|
||||
"github.com/qdm12/goshutdown/goroutine"
|
||||
"github.com/qdm12/goshutdown/group"
|
||||
@@ -82,14 +82,21 @@ func main() {
|
||||
cli := cli.New()
|
||||
cmder := command.NewCmder()
|
||||
|
||||
secretsReader := secrets.New()
|
||||
filesReader := files.New()
|
||||
envReader := env.New(logger)
|
||||
muxReader := mux.New(secretsReader, filesReader, envReader)
|
||||
reader := reader.New(reader.Settings{
|
||||
Sources: []reader.Source{
|
||||
secrets.New(logger),
|
||||
files.New(logger),
|
||||
env.New(env.Settings{}),
|
||||
},
|
||||
HandleDeprecatedKey: func(source, deprecatedKey, currentKey string) {
|
||||
logger.Warn("You are using the old " + source + " " + deprecatedKey +
|
||||
", please consider changing it to " + currentKey)
|
||||
},
|
||||
})
|
||||
|
||||
errorCh := make(chan error)
|
||||
go func() {
|
||||
errorCh <- _main(ctx, buildInfo, args, logger, muxReader, tun, netLinker, cmder, cli)
|
||||
errorCh <- _main(ctx, buildInfo, args, logger, reader, tun, netLinker, cmder, cli)
|
||||
}()
|
||||
|
||||
var err error
|
||||
@@ -139,17 +146,17 @@ var (
|
||||
|
||||
//nolint:gocognit,gocyclo,maintidx
|
||||
func _main(ctx context.Context, buildInfo models.BuildInformation,
|
||||
args []string, logger log.LoggerInterface, source Source,
|
||||
args []string, logger log.LoggerInterface, reader *reader.Reader,
|
||||
tun Tun, netLinker netLinker, cmder command.RunStarter,
|
||||
cli clier) error {
|
||||
if len(args) > 1 { // cli operation
|
||||
switch args[1] {
|
||||
case "healthcheck":
|
||||
return cli.HealthCheck(ctx, source, logger)
|
||||
return cli.HealthCheck(ctx, reader, logger)
|
||||
case "clientkey":
|
||||
return cli.ClientKey(args[2:])
|
||||
case "openvpnconfig":
|
||||
return cli.OpenvpnConfig(logger, source, netLinker)
|
||||
return cli.OpenvpnConfig(logger, reader, netLinker)
|
||||
case "update":
|
||||
return cli.Update(ctx, args[2:], logger)
|
||||
case "format-servers":
|
||||
@@ -180,17 +187,22 @@ func _main(ctx context.Context, buildInfo models.BuildInformation,
|
||||
fmt.Println(line)
|
||||
}
|
||||
|
||||
allSettings, err := source.Read()
|
||||
var allSettings settings.Settings
|
||||
err = allSettings.Read(reader)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
allSettings.SetDefaults()
|
||||
|
||||
// Note: no need to validate minimal settings for the firewall:
|
||||
// - global log level is parsed from source
|
||||
// - global log level is parsed below
|
||||
// - firewall Debug and Enabled are booleans parsed from source
|
||||
|
||||
logger.Patch(log.SetLevel(*allSettings.Log.Level))
|
||||
netLinker.PatchLoggerLevel(*allSettings.Log.Level)
|
||||
logLevel, err := log.ParseLevel(allSettings.Log.Level)
|
||||
if err != nil {
|
||||
return fmt.Errorf("log level: %w", err)
|
||||
}
|
||||
logger.Patch(log.SetLevel(logLevel))
|
||||
netLinker.PatchLoggerLevel(logLevel)
|
||||
|
||||
routingLogger := logger.New(log.SetComponent("routing"))
|
||||
if *allSettings.Firewall.Debug { // To remove in v4
|
||||
@@ -578,8 +590,8 @@ type Linker interface {
|
||||
type clier interface {
|
||||
ClientKey(args []string) error
|
||||
FormatServers(args []string) error
|
||||
OpenvpnConfig(logger cli.OpenvpnConfigLogger, source cli.Source, ipv6Checker cli.IPv6Checker) error
|
||||
HealthCheck(ctx context.Context, source cli.Source, warner cli.Warner) error
|
||||
OpenvpnConfig(logger cli.OpenvpnConfigLogger, reader *reader.Reader, ipv6Checker cli.IPv6Checker) error
|
||||
HealthCheck(ctx context.Context, reader *reader.Reader, warner cli.Warner) error
|
||||
Update(ctx context.Context, args []string, logger cli.UpdaterLogger) error
|
||||
}
|
||||
|
||||
@@ -587,9 +599,3 @@ type Tun interface {
|
||||
Check(tunDevice string) error
|
||||
Create(tunDevice string) error
|
||||
}
|
||||
|
||||
type Source interface {
|
||||
Read() (settings settings.Settings, err error)
|
||||
ReadHealth() (health settings.Health, err error)
|
||||
String() string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user