/
config.go
38 lines (28 loc) · 1.39 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package config
import (
"github.com/kelseyhightower/envconfig"
"github.com/pkg/errors"
)
type Config struct {
Env string `envconfig:"ENVIRONMENT" default:"development"`
ListenAddress string `envconfig:"LISTEN_ADDRESS" default:"127.0.0.1:8080"`
CanonicalURL string `envconfig:"CANONICAL_URL" default:"http://localhost:8080"`
FacebookClientId string `envconfig:"FACEBOOK_CLIENT_ID" required:"true"`
FacebookClientSecret string `envconfig:"FACEBOOK_CLIENT_SECRET" required:"true"`
RedditClientId string `envconfig:"REDDIT_CLIENT_ID" required:"true"`
RedditClientSecret string `envconfig:"REDDIT_CLIENT_SECRET" required:"true"`
GoogleClientId string `envconfig:"GOOGLE_CLIENT_ID" required:"true"`
GoogleClientSecret string `envconfig:"GOOGLE_CLIENT_SECRET" required:"true"`
GitHubClientId string `envconfig:"GITHUB_CLIENT_ID" required:"true"`
GitHubClientSecret string `envconfig:"GITHUB_CLIENT_SECRET" required:"true"`
MongoURL string `envconfig:"MONGO_URL" default:"localhost"`
SteemdDisabled bool `envconfig:"STEEMD_DISABLED"`
SteemdRPCEndpointAddress string `envconfig:"STEEMD_RPC_ENDPOINT_ADDRESS" default:"ws://localhost:8090"`
}
func Load() (*Config, error) {
var config Config
if err := envconfig.Process("STEEMWATCH", &config); err != nil {
return nil, errors.Wrap(err, "failed to load config from the environment")
}
return &config, nil
}