summaryrefslogtreecommitdiff
path: root/src/rhctl/conf.go
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2016-03-26 17:24:42 (GMT)
committerChristian Pointner <equinox@spreadspace.org>2016-03-26 17:24:42 (GMT)
commit7cfc7644c284b72997eb3b31b98fab447fe06bed (patch)
tree217b65c1418a1262610f683fdbe638e2a5d44920 /src/rhctl/conf.go
parente9d6068037e7ff2b8c7a006fb01b482b0b7de409 (diff)
added config file parser
improved baudrate handling
Diffstat (limited to 'src/rhctl/conf.go')
-rw-r--r--src/rhctl/conf.go64
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
+}