/
config.go
50 lines (41 loc) · 1.12 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
39
40
41
42
43
44
45
46
47
48
49
50
package aig
import (
"os"
"go.mongodb.org/mongo-driver/event"
)
const (
envURI = "AIG_MONGO_URI"
envUser = "AIG_MONGO_USER"
envPassword = "AIG_MONGO_PASSWORD"
envDB = "AIG_MONGO_DB"
envCollection = "AIG_MONGO_COLLECTION"
)
type MongoConfig struct {
URI string `env:"AIG_MONGO_URI" envDefault:"mongodb://127.0.0.1:27017"`
User string `env:"AIG_MONGO_USER"`
Password string `env:"AIG_MONGO_PASSWORD"`
DB string `env:"AIG_MONGO_DB" envDefault:"generator"` //example: generator
Collection string `env:"AIG_MONGO_COLLECTION" envDefault:"ai"` //example: ai
Monitor *event.CommandMonitor
}
func GetConfigEnv() MongoConfig {
cfg := DefaultConfig()
envString(envURI, &cfg.URI)
envString(envUser, &cfg.User)
envString(envPassword, &cfg.Password)
envString(envDB, &cfg.DB)
envString(envCollection, &cfg.Collection)
return cfg
}
func DefaultConfig() MongoConfig {
return MongoConfig{
URI: "mongodb://127.0.0.1:27017",
DB: "generator",
Collection: "ai",
}
}
func envString(env string, v *string) {
if val, ok := os.LookupEnv(env); ok {
*v = val
}
}