skills/config.go
2026-05-12 19:08:00 +02:00

40 lines
716 B
Go

package main
import (
"fmt"
"os"
"strings"
"github.com/joho/godotenv"
)
type Config struct {
Port string
DatabaseURL string
StorageDir string
DevMode bool
}
func LoadConfig() (Config, error) {
_ = godotenv.Load()
cfg := Config{
Port: envOrDefault("PORT", "8080"),
DatabaseURL: os.Getenv("DATABASE_URL"),
StorageDir: envOrDefault("STORAGE_DIR", "uploads"),
DevMode: strings.EqualFold(envOrDefault("DEV_MODE", "false"), "true"),
}
if cfg.DatabaseURL == "" {
return Config{}, fmt.Errorf("DATABASE_URL is required")
}
return cfg, nil
}
func envOrDefault(key, fallback string) string {
value := os.Getenv(key)
if value == "" {
return fallback
}
return value
}