35 lines
675 B
Go
35 lines
675 B
Go
package app
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/caarlos0/env/v11"
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
type Config struct {
|
|
Port int `env:"PORT" envDefault:"8080"`
|
|
DBURL string `env:"DB_URL"`
|
|
|
|
S3Endpoint string `env:"S3_ENDPOINT"`
|
|
S3AccessKey string `env:"S3_ACCESS_KEY"`
|
|
S3SecretKey string `env:"S3_SECRET_KEY"`
|
|
S3Bucket string `env:"S3_BUCKET" envDefault:"geofiles"`
|
|
S3UseSSL bool `env:"S3_USE_SSL" envDefault:"false"`
|
|
}
|
|
|
|
func loadConfig() (*Config, error) {
|
|
|
|
if err := godotenv.Load(); err != nil {
|
|
log.Println("No .env file found, relying on system env")
|
|
}
|
|
|
|
cfg := &Config{}
|
|
|
|
if err := env.Parse(cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return cfg, nil
|
|
}
|