zoreide/conf.go

59 lines
1.3 KiB
Go

package main
import (
"encoding/json"
"io"
"log"
"os"
)
type AbstractConfig struct {
MulticastConfig struct {
MIPAddr string `json:"MIpAddr"`
MPort string `json:"MPort"`
MaxDatagramSize int `json:"MaxDatagramSize"`
} `json:"MulticastConfig"`
InterfaceConfig struct {
ExistingInterface string `json:"ExistingInterface"`
BridgeIPCIDR string `json:"BridgeIpCIDR"`
} `json:"InterfaceConfig"`
Debug bool `json:"debug"`
}
var a AbstractConfig
func init() {
//reading json file
file, err := os.ReadFile("zoreide.json")
if err != nil {
log.Println("Cannot open config file", err.Error())
os.Exit(1)
}
err = json.Unmarshal([]byte(file), &a)
if err != nil {
log.Println("Cannot marshal json: ", err.Error())
os.Exit(1)
}
MulticastEntity.MIpAddr = a.MulticastConfig.MIPAddr
MulticastEntity.MPort = a.MulticastConfig.MPort
MulticastEntity.MaxDatagramSize = numberlenght
ZoreideBridge.BridgeIpCIDR = a.InterfaceConfig.BridgeIPCIDR
ZoreideBridge.ExistingInterface = a.InterfaceConfig.ExistingInterface
ZoreideBridge.IsActive = false
if !a.Debug {
log.SetOutput(io.Discard)
}
log.Println("Inizialized Generic Config: ", a)
log.Println("Inizialized Interface Config: ", ZoreideBridge)
log.Println("Inizialized Multicast Config: ", MulticastEntity)
}