- drop qdm12/govalid dependency - upgrade qdm12/ss-server to v0.6.0 - do not unset sensitive config settings (makes no sense to me)
72 lines
1.5 KiB
Go
72 lines
1.5 KiB
Go
package settings
|
|
|
|
import (
|
|
"github.com/qdm12/gosettings"
|
|
"github.com/qdm12/gosettings/reader"
|
|
"github.com/qdm12/gotree"
|
|
)
|
|
|
|
// System contains settings to configure system related elements.
|
|
type System struct {
|
|
PUID *uint32
|
|
PGID *uint32
|
|
Timezone string
|
|
}
|
|
|
|
// Validate validates System settings.
|
|
func (s System) validate() (err error) {
|
|
return nil
|
|
}
|
|
|
|
func (s *System) copy() (copied System) {
|
|
return System{
|
|
PUID: gosettings.CopyPointer(s.PUID),
|
|
PGID: gosettings.CopyPointer(s.PGID),
|
|
Timezone: s.Timezone,
|
|
}
|
|
}
|
|
|
|
func (s *System) overrideWith(other System) {
|
|
s.PUID = gosettings.OverrideWithPointer(s.PUID, other.PUID)
|
|
s.PGID = gosettings.OverrideWithPointer(s.PGID, other.PGID)
|
|
s.Timezone = gosettings.OverrideWithComparable(s.Timezone, other.Timezone)
|
|
}
|
|
|
|
func (s *System) setDefaults() {
|
|
const defaultID = 1000
|
|
s.PUID = gosettings.DefaultPointer(s.PUID, defaultID)
|
|
s.PGID = gosettings.DefaultPointer(s.PGID, defaultID)
|
|
}
|
|
|
|
func (s System) String() string {
|
|
return s.toLinesNode().String()
|
|
}
|
|
|
|
func (s System) toLinesNode() (node *gotree.Node) {
|
|
node = gotree.New("OS Alpine settings:")
|
|
|
|
node.Appendf("Process UID: %d", *s.PUID)
|
|
node.Appendf("Process GID: %d", *s.PGID)
|
|
|
|
if s.Timezone != "" {
|
|
node.Appendf("Timezone: %s", s.Timezone)
|
|
}
|
|
|
|
return node
|
|
}
|
|
|
|
func (s *System) read(r *reader.Reader) (err error) {
|
|
s.PUID, err = r.Uint32Ptr("PUID", reader.RetroKeys("UID"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
s.PGID, err = r.Uint32Ptr("PGID", reader.RetroKeys("GID"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
s.Timezone = r.String("TZ")
|
|
return nil
|
|
}
|