summaryrefslogtreecommitdiff
path: root/internal/config
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-10-04 10:31:35 +0300
committerPaul Buetow <paul@buetow.org>2024-10-04 10:31:35 +0300
commit68b2a1ba2615c19642c8417d1350b9c6b867b1bb (patch)
treeb298e4c4c0c313c5b8ade72986e2865f18706639 /internal/config
parentd5edaafc454dffd50cac1fed3cf03fbe9a05c50c (diff)
initial secrets config and initial mastodon
Diffstat (limited to 'internal/config')
-rw-r--r--internal/config/args.go1
-rw-r--r--internal/config/secrets.go33
2 files changed, 34 insertions, 0 deletions
diff --git a/internal/config/args.go b/internal/config/args.go
index 39e6762..b380dcd 100644
--- a/internal/config/args.go
+++ b/internal/config/args.go
@@ -15,6 +15,7 @@ type Args struct {
Platforms []string
Target int
Lookback time.Duration
+ Secrets Secrets
}
func (a Args) Validate() error {
diff --git a/internal/config/secrets.go b/internal/config/secrets.go
new file mode 100644
index 0000000..bd35fb7
--- /dev/null
+++ b/internal/config/secrets.go
@@ -0,0 +1,33 @@
+package config
+
+import (
+ "encoding/json"
+ "fmt"
+ "io"
+ "os"
+)
+
+type Secrets struct {
+ MastodonURL string
+ MastodonAccessToken string
+}
+
+func NewSecrets(configPath string) (Secrets, error) {
+ var sec Secrets
+ file, err := os.Open(configPath)
+ if err != nil {
+ return sec, fmt.Errorf("failed to open file: %w", err)
+ }
+ defer file.Close()
+
+ bytes, err := io.ReadAll(file)
+ if err != nil {
+ return sec, fmt.Errorf("failed to read file: %w", err)
+ }
+
+ if err := json.Unmarshal(bytes, &sec); err != nil {
+ return sec, fmt.Errorf("failed to unmarshal JSON: %w", err)
+ }
+
+ return sec, nil
+}