40 lines
808 B
Go
40 lines
808 B
Go
// config.go
|
|
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
type Config struct {
|
|
RabbitURL string
|
|
QueueName string
|
|
MinioURL string
|
|
MinioAccessKey string
|
|
MinioSecretKey string
|
|
}
|
|
|
|
func LoadConfig() Config {
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
log.Println("No .env file found, using environment variables")
|
|
}
|
|
|
|
return Config{
|
|
RabbitURL: getEnv("RABBITMQ_URL", "amqp://localhost"),
|
|
QueueName: getEnv("QUEUE_NAME", "storage.file"),
|
|
MinioURL: getEnv("MINIO_ENDPOINT", "localhost:9000"),
|
|
MinioAccessKey: getEnv("MINIO_ACCESS_KEY", "minioadmin"),
|
|
MinioSecretKey: getEnv("MINIO_SECRET_KEY", "minioadmin"),
|
|
}
|
|
}
|
|
|
|
func getEnv(key, fallback string) string {
|
|
if value, exists := os.LookupEnv(key); exists {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|