Files
MQTTLogger/config/config.go
2025-09-29 13:34:34 +03:30

51 lines
882 B
Go

package config
import (
"os"
"github.com/joho/godotenv"
"go.uber.org/zap"
)
type Config struct {
URI string
Username string
Password string
Topics []string
}
func NewConfig(logger *zap.Logger) *Config {
err := godotenv.Load()
if err != nil {
logger.Warn("Error loading .env file, using environment variables")
}
uri := os.Getenv("MQTT_URI")
if uri == "" {
logger.Fatal("MQTT_URI is not set")
}
username := os.Getenv("MQTT_USERNAME")
if username == "" {
logger.Warn("MQTT_USERNAME is not set")
}
password := os.Getenv("MQTT_PASSWORD")
if password == "" {
logger.Warn("MQTT_PASSWORD is not set")
}
topics := os.Getenv("MQTT_TOPICS")
if topics == "" {
logger.Warn("MQTT_TOPICS is not set, defaulting to #")
topics = "#"
}
return &Config{
URI: uri,
Username: username,
Password: password,
Topics: []string{topics},
}
}