all repos

onasty @ 5290b5fe6a6bba7e2328582aae3c4a359ec60e01

a one-time notes service

onasty/mailer/config.go (view raw)

Smirnov Oleksandr Smirnov Oleksandr
ss2316544@gmail.com
feat: add oauth2 login for google and github (#109)..., 1 year ago
1
package main
2
3
import (
4
	"os"
5
	"strconv"
6
)
7
8
type Config struct {
9
	AppURL        string
10
	NatsURL       string
11
	MailgunFrom   string
12
	MailgunDomain string
13
	MailgunAPIKey string
14
15
	LogLevel    string
16
	LogFormat   string
17
	LogShowLine bool
18
19
	MetricsEnabled bool
20
	MetricsPort    int
21
}
22
23
func NewConfig() *Config {
24
	return &Config{
25
		AppURL:         getenvOrDefault("APP_URL", ""),
26
		NatsURL:        getenvOrDefault("NATS_URL", ""),
27
		MailgunFrom:    getenvOrDefault("MAILGUN_FROM", ""),
28
		MailgunDomain:  getenvOrDefault("MAILGUN_DOMAIN", ""),
29
		MailgunAPIKey:  getenvOrDefault("MAILGUN_API_KEY", ""),
30
		LogLevel:       getenvOrDefault("LOG_LEVEL", "debug"),
31
		LogFormat:      getenvOrDefault("LOG_FORMAT", "json"),
32
		LogShowLine:    getenvOrDefault("LOG_SHOW_LINE", "true") == "true",
33
		MetricsPort:    mustGetenvOrDefaultInt("METRICS_PORT", 8001),
34
		MetricsEnabled: getenvOrDefault("METRICS_ENABLED", "true") == "true",
35
	}
36
}
37
38
func getenvOrDefault(key, def string) string {
39
	if v, ok := os.LookupEnv(key); ok {
40
		return v
41
	}
42
	return def
43
}
44
45
func mustGetenvOrDefaultInt(key string, def int) int {
46
	if v, ok := os.LookupEnv(key); ok {
47
		r, err := strconv.Atoi(v)
48
		if err != nil {
49
			panic(err)
50
		}
51
		return r
52
	}
53
	return def
54
}