package config import ( "github.com/caarlos0/env/v8" "github.com/joho/godotenv" ) type Config struct { TelegramToken string `env:"TELEGRAM_TOKEN" envDefault:"1"` TelegramChannelID int64 `env:"TELEGRAM_CHANNEL_ID"envDefault:"1"` HttpAddress string `env:"HTTP_ADDRESS" envDefault:":8080"` MongoUri string `env:"MONGO_URI" envDefault:"mongodb://localhost:27017"` DatabaseName string `env:"MONGO_DATABASE_NAME" envDefault:"admin"` S3Endpoint string `env:"S3_ENDPOINT" envDefault:"1"` S3AccessKeyID string `env:"S3_ACCESS_KEY_ID" envDefault:"1"` S3SecretKey string `env:"S3_SECRET_KEY" envDefault:"1"` CustomerSvcAddress string `env:"CUSTOMER_SVC_ADDRESS" envDefault:"http://localhost:8003"` } func NewConfig(file ...string) (*Config, error) { if err := godotenv.Load(file...); err != nil { return nil, err } var cfg Config if err := env.Parse(&cfg); err != nil { return nil, err } return &cfg, nil }