diff --git a/cmd/gluetun/main.go b/cmd/gluetun/main.go index 49813e0c..3282aff8 100644 --- a/cmd/gluetun/main.go +++ b/cmd/gluetun/main.go @@ -16,7 +16,7 @@ import ( "github.com/qdm12/dns/pkg/unbound" "github.com/qdm12/gluetun/internal/alpine" "github.com/qdm12/gluetun/internal/cli" - "github.com/qdm12/gluetun/internal/configuration/sources" + "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" @@ -128,7 +128,7 @@ var ( //nolint:gocognit,gocyclo,maintidx func _main(ctx context.Context, buildInfo models.BuildInformation, - args []string, logger log.LoggerInterface, source sources.Source, + args []string, logger log.LoggerInterface, source Source, tun Tun, netLinker netLinker, cmder command.RunStarter, cli clier) error { if len(args) > 1 { // cli operation @@ -529,8 +529,8 @@ type Linker interface { type clier interface { ClientKey(args []string) error FormatServers(args []string) error - OpenvpnConfig(logger cli.OpenvpnConfigLogger, source sources.Source) error - HealthCheck(ctx context.Context, source sources.Source, warner cli.Warner) error + OpenvpnConfig(logger cli.OpenvpnConfigLogger, source cli.Source) error + HealthCheck(ctx context.Context, source cli.Source, warner cli.Warner) error Update(ctx context.Context, args []string, logger cli.UpdaterLogger) error } @@ -538,3 +538,9 @@ 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 +} diff --git a/internal/cli/healthcheck.go b/internal/cli/healthcheck.go index 90c13e3d..242bdcc1 100644 --- a/internal/cli/healthcheck.go +++ b/internal/cli/healthcheck.go @@ -6,11 +6,10 @@ import ( "net/http" "time" - "github.com/qdm12/gluetun/internal/configuration/sources" "github.com/qdm12/gluetun/internal/healthcheck" ) -func (c *CLI) HealthCheck(ctx context.Context, source sources.Source, warner Warner) error { +func (c *CLI) HealthCheck(ctx context.Context, source Source, warner Warner) error { // Extract the health server port from the configuration. config, err := source.ReadHealth() if err != nil { diff --git a/internal/configuration/sources/source.go b/internal/cli/interfaces.go similarity index 70% rename from internal/configuration/sources/source.go rename to internal/cli/interfaces.go index bdb434a2..ad5ac64b 100644 --- a/internal/configuration/sources/source.go +++ b/internal/cli/interfaces.go @@ -1,9 +1,9 @@ -package sources +package cli import "github.com/qdm12/gluetun/internal/configuration/settings" type Source interface { Read() (settings settings.Settings, err error) - ReadHealth() (settings settings.Health, err error) + ReadHealth() (health settings.Health, err error) String() string } diff --git a/internal/cli/openvpnconfig.go b/internal/cli/openvpnconfig.go index 85c1b8cb..e39f5dae 100644 --- a/internal/cli/openvpnconfig.go +++ b/internal/cli/openvpnconfig.go @@ -8,7 +8,6 @@ import ( "strings" "time" - "github.com/qdm12/gluetun/internal/configuration/sources" "github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/openvpn/extract" "github.com/qdm12/gluetun/internal/provider" @@ -36,7 +35,7 @@ type IPFetcher interface { FetchMultiInfo(ctx context.Context, ips []net.IP) (data []ipinfo.Response, err error) } -func (c *CLI) OpenvpnConfig(logger OpenvpnConfigLogger, source sources.Source) error { +func (c *CLI) OpenvpnConfig(logger OpenvpnConfigLogger, source Source) error { storage, err := storage.New(logger, constants.ServersData) if err != nil { return err diff --git a/internal/configuration/sources/env/reader.go b/internal/configuration/sources/env/reader.go index 17b64a44..725534c6 100644 --- a/internal/configuration/sources/env/reader.go +++ b/internal/configuration/sources/env/reader.go @@ -2,11 +2,8 @@ package env import ( "github.com/qdm12/gluetun/internal/configuration/settings" - "github.com/qdm12/gluetun/internal/configuration/sources" ) -var _ sources.Source = (*Reader)(nil) - type Reader struct { warner Warner } diff --git a/internal/configuration/sources/files/reader.go b/internal/configuration/sources/files/reader.go index 56981574..34166ac4 100644 --- a/internal/configuration/sources/files/reader.go +++ b/internal/configuration/sources/files/reader.go @@ -2,11 +2,8 @@ package files import ( "github.com/qdm12/gluetun/internal/configuration/settings" - "github.com/qdm12/gluetun/internal/configuration/sources" ) -var _ sources.Source = (*Reader)(nil) - type Reader struct{} func New() *Reader { diff --git a/internal/configuration/sources/merge/reader.go b/internal/configuration/sources/merge/reader.go index ee9723f5..dc46f209 100644 --- a/internal/configuration/sources/merge/reader.go +++ b/internal/configuration/sources/merge/reader.go @@ -5,16 +5,19 @@ import ( "strings" "github.com/qdm12/gluetun/internal/configuration/settings" - "github.com/qdm12/gluetun/internal/configuration/sources" ) -var _ sources.Source = (*Reader)(nil) - -type Reader struct { - sources []sources.Source +type Source interface { + Read() (settings settings.Settings, err error) + ReadHealth() (settings settings.Health, err error) + String() string } -func New(sources ...sources.Source) *Reader { +type Reader struct { + sources []Source +} + +func New(sources ...Source) *Reader { return &Reader{ sources: sources, } diff --git a/internal/configuration/sources/secrets/reader.go b/internal/configuration/sources/secrets/reader.go index 10b4e8a5..e483f6b9 100644 --- a/internal/configuration/sources/secrets/reader.go +++ b/internal/configuration/sources/secrets/reader.go @@ -2,13 +2,9 @@ package secrets import ( "github.com/qdm12/gluetun/internal/configuration/settings" - "github.com/qdm12/gluetun/internal/configuration/sources" ) -var _ sources.Source = (*Reader)(nil) - -type Reader struct { -} +type Reader struct{} func New() *Reader { return &Reader{}