diff options
Diffstat (limited to 'src/rhctl/conf.go')
-rw-r--r-- | src/rhctl/conf.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/rhctl/conf.go b/src/rhctl/conf.go new file mode 100644 index 0000000..fda09a6 --- /dev/null +++ b/src/rhctl/conf.go @@ -0,0 +1,64 @@ +// +// rhctl +// +// Copyright (C) 2009-2016 Christian Pointner <equinox@helsinki.at> +// +// 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 <http://www.gnu.org/licenses/>. +// + +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 +} |