From 68b2a1ba2615c19642c8417d1350b9c6b867b1bb Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 4 Oct 2024 10:31:35 +0300 Subject: initial secrets config and initial mastodon --- internal/config/args.go | 1 + internal/config/secrets.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 internal/config/secrets.go (limited to 'internal/config') 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 +} -- cgit v1.2.3