Public IP getter loop refactored

This commit is contained in:
Quentin McGaw
2020-12-28 01:51:55 +00:00
parent 91f5338db0
commit db886163c2
11 changed files with 279 additions and 135 deletions

View File

@@ -0,0 +1,39 @@
package settings
import (
"fmt"
"strings"
"time"
"github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/params"
)
type PublicIP struct {
Period time.Duration `json:"period"`
IPFilepath models.Filepath `json:"ip_filepath"`
}
func getPublicIPSettings(paramsReader params.Reader) (settings PublicIP, err error) {
settings.Period, err = paramsReader.GetPublicIPPeriod()
if err != nil {
return settings, err
}
settings.IPFilepath, err = paramsReader.GetPublicIPFilepath()
if err != nil {
return settings, err
}
return settings, nil
}
func (s *PublicIP) String() string {
if s.Period == 0 {
return "Public IP getter settings: disabled"
}
settingsList := []string{
"Public IP getter settings:",
fmt.Sprintf("Period: %s", s.Period),
fmt.Sprintf("IP file: %s", s.IPFilepath),
}
return strings.Join(settingsList, "\n|--")
}

View File

@@ -2,7 +2,6 @@ package settings
import (
"strings"
"time"
"github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/params"
@@ -22,8 +21,8 @@ type Settings struct {
Firewall Firewall
HTTPProxy HTTPProxy
ShadowSocks ShadowSocks
PublicIPPeriod time.Duration
Updater Updater
PublicIP PublicIP
VersionInformation bool
ControlServer ControlServer
}
@@ -43,7 +42,7 @@ func (s *Settings) String() string {
s.ShadowSocks.String(),
s.ControlServer.String(),
s.Updater.String(),
"Public IP check period: " + s.PublicIPPeriod.String(), // TODO print disabled if 0
s.PublicIP.String(),
"Version information: " + versionInformation,
"", // new line at the end
}, "\n")
@@ -80,7 +79,7 @@ func GetAllSettings(paramsReader params.Reader) (settings Settings, err error) {
if err != nil {
return settings, err
}
settings.PublicIPPeriod, err = paramsReader.GetPublicIPPeriod()
settings.PublicIP, err = getPublicIPSettings(paramsReader)
if err != nil {
return settings, err
}

View File

@@ -4,16 +4,14 @@ import (
"fmt"
"strings"
"github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/params"
)
// System contains settings to configure system related elements.
type System struct {
UID int
GID int
Timezone string
IPStatusFilepath models.Filepath
UID int
GID int
Timezone string
}
// GetSystemSettings obtains the System settings using the params functions.
@@ -30,10 +28,6 @@ func GetSystemSettings(paramsReader params.Reader) (settings System, err error)
if err != nil {
return settings, err
}
settings.IPStatusFilepath, err = paramsReader.GetIPStatusFilepath()
if err != nil {
return settings, err
}
return settings, nil
}
@@ -43,7 +37,6 @@ func (s *System) String() string {
fmt.Sprintf("User ID: %d", s.UID),
fmt.Sprintf("Group ID: %d", s.GID),
fmt.Sprintf("Timezone: %s", s.Timezone),
fmt.Sprintf("IP Status filepath: %s", s.IPStatusFilepath),
}
return strings.Join(settingsList, "\n|--")
}