first commit

This commit is contained in:
tfa
2022-12-08 14:59:39 +01:00
commit 5b812225bb
8 changed files with 460 additions and 0 deletions

50
config.go Normal file
View File

@@ -0,0 +1,50 @@
package main
import (
"fmt"
"log"
"github.com/currantlabs/ble/linux"
"gopkg.in/ini.v1"
)
// Config represents a configuration
type Config struct {
MQTT MQTT
Host *linux.Device
}
// NewConfig returns a new Config
func NewConfig(file string) (*Config, error) {
log.Printf("[Config] Loading Configuration (%s)", file)
cfg, err := ini.Load(file)
if err != nil {
return &Config{}, err
}
sec, err := cfg.GetSection("MQTT")
if err != nil {
return &Config{}, err
}
if !sec.HasKey("host") {
return &Config{}, fmt.Errorf("Configuration requires MQTT host")
}
if !sec.HasKey("port") {
log.Print("MQTT port not defined; defaulting to 1883")
sec.NewKey("port", "1883")
}
mqtt := MQTT{
Host: sec.Key("host").String(),
Port: sec.Key("port").String(),
User: sec.Key("user").String(),
Pass: sec.Key("pass").String(),
}
return &Config{
MQTT: mqtt,
}, nil
}