Public IP getter loop refactored
This commit is contained in:
39
internal/settings/publicip.go
Normal file
39
internal/settings/publicip.go
Normal 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|--")
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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|--")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user