diff options
| author | Paul Buetow <paul@buetow.org> | 2024-10-04 10:31:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-10-04 10:31:35 +0300 |
| commit | 68b2a1ba2615c19642c8417d1350b9c6b867b1bb (patch) | |
| tree | b298e4c4c0c313c5b8ade72986e2865f18706639 /internal/config | |
| parent | d5edaafc454dffd50cac1fed3cf03fbe9a05c50c (diff) | |
initial secrets config and initial mastodon
Diffstat (limited to 'internal/config')
| -rw-r--r-- | internal/config/args.go | 1 | ||||
| -rw-r--r-- | internal/config/secrets.go | 33 |
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 +} |
