Files
gluetun/internal/settings/system.go
Quentin McGaw 768147095f Golangcilint in build pipeline and fix lint errors
- Fix bad permissions bits for files
- VPNSP is 'private internet access' instead of 'pia' (retro compatible)
- Check errors of deferred unsetEnv functions in params package
-  Other lint errors fixing and code simplifications
2020-04-12 20:05:28 +00:00

50 lines
1.2 KiB
Go

package settings
import (
"fmt"
"strings"
"github.com/qdm12/private-internet-access-docker/internal/models"
"github.com/qdm12/private-internet-access-docker/internal/params"
)
// System contains settings to configure system related elements
type System struct {
UID int
GID int
Timezone string
IPStatusFilepath models.Filepath
}
// GetSystemSettings obtains the System settings using the params functions
func GetSystemSettings(paramsReader params.Reader) (settings System, err error) {
settings.UID, err = paramsReader.GetUID()
if err != nil {
return settings, err
}
settings.GID, err = paramsReader.GetGID()
if err != nil {
return settings, err
}
settings.Timezone, err = paramsReader.GetTimezone()
if err != nil {
return settings, err
}
settings.IPStatusFilepath, err = paramsReader.GetIPStatusFilepath()
if err != nil {
return settings, err
}
return settings, nil
}
func (s *System) String() string {
settingsList := []string{
"System settings:",
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|--")
}