diff options
| author | Paul Buetow <paul@buetow.org> | 2024-09-21 14:03:45 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-09-21 14:03:45 +0300 |
| commit | dff4d455e07d639b82a0bed814f41d0656e9b6d0 (patch) | |
| tree | 56289a6fd80a00a9724992ab9cb8b3d7215ebedf /internal/config/server | |
| parent | 780ade3dc066afb8a43be824373414f3d316ebd6 (diff) | |
cleanup
Diffstat (limited to 'internal/config/server')
| -rw-r--r-- | internal/config/server/mastodon.go | 1 | ||||
| -rw-r--r-- | internal/config/server/secrets.go | 44 | ||||
| -rw-r--r-- | internal/config/server/server.go | 62 |
3 files changed, 0 insertions, 107 deletions
diff --git a/internal/config/server/mastodon.go b/internal/config/server/mastodon.go deleted file mode 100644 index abb4e43..0000000 --- a/internal/config/server/mastodon.go +++ /dev/null @@ -1 +0,0 @@ -package server diff --git a/internal/config/server/secrets.go b/internal/config/server/secrets.go deleted file mode 100644 index 0e8aab2..0000000 --- a/internal/config/server/secrets.go +++ /dev/null @@ -1,44 +0,0 @@ -package server - -import ( - "fmt" - "log" - "os" - - "codeberg.org/snonux/gos/internal/config" -) - -type SecretsConfig struct { - MastodonEnable bool `json:"MastodonEnable,omitempty"` - MastodonDomain string `json:"MastodonDomain,omitempty"` - MastodonAccessToken string `json:"MastodonAccessToken,omitempty"` -} - -func newSecretsConfig(secretsFile string) (SecretsConfig, error) { - if isWorldReadable(secretsFile) { - return SecretsConfig{}, fmt.Errorf("config '%s' is world readable", secretsFile) - } - - conf, err := config.FromFile[SecretsConfig](secretsFile) - if err != nil { - if _, ok := err.(*os.PathError); !ok { - return conf, err - } - log.Println("Skipping config file:", err) - } - - conf.MastodonEnable = config.Bool("GOS_MASTODON_ENABLE", conf.MastodonEnable) - conf.MastodonDomain = config.Str("GOS_MASTODON_DOMAIN", conf.MastodonDomain) - conf.MastodonAccessToken = config.Str("GOS_MASTODON_ACCESS_TOKEN", conf.MastodonAccessToken) - - return conf, nil -} - -func isWorldReadable(file string) bool { - fileInfo, err := os.Stat(file) - if err != nil { - return false - } - - return fileInfo.Mode().Perm()&00004 != 0 -} diff --git a/internal/config/server/server.go b/internal/config/server/server.go deleted file mode 100644 index 16da14c..0000000 --- a/internal/config/server/server.go +++ /dev/null @@ -1,62 +0,0 @@ -package server - -import ( - "fmt" - "log" - "os" - - "codeberg.org/snonux/gos/internal/config" - "codeberg.org/snonux/gos/internal/types" -) - -type ServerConfig struct { - ListenAddr string `json:"ListenAddr,omitempty"` - Partners []string `json:"Partners,omitempty"` - APIKey string `json:"APIKey,omitempty"` - DataDir string `json:"StateDir,omitempty"` - EmailTo string `json:"EmailTo,omitempty"` - EmailFrom string `json:"EmailFrom,omitempty"` - SMTPServer string `json:"SMTPServer,omitempty"` - MergeIntervalS int `json:"MergeInterval,omitempty"` - ScheduleIntervalS int `json:"ScheduleInterval,omitempty"` - SocialPlatformsEnabled []string `json:"SocialPlatformsEnabled,omitempty"` - PostsPerWeek int `json:"PostsPerWeek,omitempty"` - Secrets SecretsConfig `json:"Secrets,omitempty"` -} - -func New(configFile, secretsFile string) (ServerConfig, error) { - conf, err := config.FromFile[ServerConfig](configFile) - if err != nil { - if _, ok := err.(*os.PathError); !ok { - return conf, err - } - log.Println("Skipping config file:", err) - } - - if conf.Secrets, err = newSecretsConfig(secretsFile); err != nil { - return conf, err - } - - conf.ListenAddr = config.Str("GOS_LISTEN_ADDR", conf.ListenAddr, "localhost:8080") - conf.Partners = config.StrSlice("GOS_PARTNERS", conf.Partners) - conf.APIKey = config.Str("GOS_API_KEY", conf.APIKey) - conf.DataDir = config.Str("GOS_DATA_DIR", conf.DataDir, "data") - conf.EmailTo = config.Str("GOS_EMAIL_TO", conf.EmailTo) - conf.EmailFrom = config.Str("GOS_EMAIL_FROM", conf.EmailFrom) - conf.SocialPlatformsEnabled = config.StrSlice("GOS_SOCIAL_PLATFORMS_ENABLED", - []string{types.Mastodon, types.LinkedIn, types.Textfile}) - conf.PostsPerWeek = config.Int("GOS_POSTS_PER_WEEK", conf.PostsPerWeek, 2) - conf.SMTPServer = config.Str("GOS_SMTP_SERVER", conf.SMTPServer, func() string { - hostname, err := os.Hostname() - if err != nil { - log.Fatal(err) - } - return fmt.Sprintf("%s:25", hostname) - }) - - const oneHour = 3600 - conf.MergeIntervalS = config.Int("GOS_MERGE_INTERVAL", oneHour) - conf.ScheduleIntervalS = config.Int("GOS_SCHEDULER_INTERVAL", oneHour*6) - - return conf, nil -} |
