41 lines
729 B
Go
41 lines
729 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
type Config struct {
|
|
App struct {
|
|
Env string
|
|
}
|
|
GRPC struct {
|
|
Port string
|
|
}
|
|
Storage struct {
|
|
Bucket string
|
|
Region string
|
|
Endpoint string
|
|
AccessKey string
|
|
SecretKey string
|
|
}
|
|
Logging struct {
|
|
Level string
|
|
}
|
|
}
|
|
|
|
func Load() *Config {
|
|
var cfg Config
|
|
get := func(key string) string { return strings.TrimSpace(os.Getenv(key)) }
|
|
|
|
cfg.App.Env = get("APP_ENV")
|
|
cfg.GRPC.Port = get("GRPC_PORT")
|
|
cfg.Storage.Bucket = get("S3_BUCKET")
|
|
cfg.Storage.Region = get("S3_REGION")
|
|
cfg.Storage.Endpoint = get("S3_ENDPOINT")
|
|
cfg.Storage.AccessKey = get("S3_ACCESS_KEY")
|
|
cfg.Storage.SecretKey = get("S3_SECRET_KEY")
|
|
cfg.Logging.Level = get("LOG_LEVEL")
|
|
|
|
return &cfg
|
|
} |