summaryrefslogtreecommitdiff
path: root/internal/config/server
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-09-21 14:03:45 +0300
committerPaul Buetow <paul@buetow.org>2024-09-21 14:03:45 +0300
commitdff4d455e07d639b82a0bed814f41d0656e9b6d0 (patch)
tree56289a6fd80a00a9724992ab9cb8b3d7215ebedf /internal/config/server
parent780ade3dc066afb8a43be824373414f3d316ebd6 (diff)
cleanup
Diffstat (limited to 'internal/config/server')
-rw-r--r--internal/config/server/mastodon.go1
-rw-r--r--internal/config/server/secrets.go44
-rw-r--r--internal/config/server/server.go62
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
-}