// // rhctl // // Copyright (C) 2009-2016 Christian Pointner // // This file is part of rhctl. // // rhctl is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // rhctl is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with rhctl. If not, see . // package main import ( "os" "github.com/naoina/toml" ) type Config struct { Audioswitch struct { Device string `toml:"dev"` Baudrate Baudrate `toml:"baud"` } Servers map[string]struct { ControlDevice string `toml:"ctrl_dev"` ControlBaud Baudrate `toml:"ctrl_baud"` HeartbeatDev string `toml:"heartbeat_dev"` HeartbeatBaud Baudrate `toml:"heartbeat_baud"` } Clients struct { Web struct { Addr string `toml:"addr"` } } } func ReadConfig(configfile string) (conf *Config, err error) { conf = &Config{} var f *os.File if f, err = os.Open(configfile); err != nil { return } defer f.Close() decoder := toml.NewDecoder(f) if err = decoder.Decode(conf); err != nil { return } return }