www.byjp.me/tools/syndicate/shared/config/config.go
JP Hastings-Spital c135910850 Working pixelfed & insta posting
Syndicate is working! Instagra & Pixelfed demonstrated with the new post attached.

Lots of TODOs, but functional enough :)
2023-11-12 07:43:08 +00:00

33 lines
731 B
Go

package config
import (
"fmt"
"os"
"strings"
)
func GetStrings(config map[string]any, fields ...string) (map[string]string, error) {
out := make(map[string]string)
for _, field := range fields {
name := field
val, ok := config[field].(string)
if !ok || val == "" {
return nil, fmt.Errorf("missing '%s' config field", field)
}
if strings.HasSuffix(field, "_envvar") {
name = strings.TrimSuffix(field, "_envvar")
envVal := val
if val, ok = os.LookupEnv(envVal); !ok {
return nil, fmt.Errorf("missing '%s' environment variable (for '%s' config field)", envVal, field)
}
}
if val == "" {
return nil, fmt.Errorf("empty '%s' config field", field)
}
out[name] = val
}
return out, nil
}