40 lines
879 B
Go
40 lines
879 B
Go
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|--")
|
|
}
|