Move config structs to packages
This commit is contained in:
parent
5ca13ff9e5
commit
f5b24dfab2
|
@ -2,14 +2,24 @@ package cmd
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"github.com/FreifunkBremen/yanic/database"
|
||||
"github.com/FreifunkBremen/yanic/respond"
|
||||
"github.com/FreifunkBremen/yanic/runtime"
|
||||
"github.com/FreifunkBremen/yanic/runtime/config"
|
||||
"github.com/FreifunkBremen/yanic/webserver"
|
||||
"github.com/naoina/toml"
|
||||
)
|
||||
|
||||
// Config represents the whole configuration
|
||||
type Config struct {
|
||||
Respondd respond.Config
|
||||
Webserver webserver.Config
|
||||
Nodes runtime.NodesConfig
|
||||
Database database.Config
|
||||
}
|
||||
|
||||
var (
|
||||
configPath string
|
||||
collector *respond.Collector
|
||||
|
@ -17,11 +27,28 @@ var (
|
|||
nodes *runtime.Nodes
|
||||
)
|
||||
|
||||
func loadConfig() *config.Config {
|
||||
config, err := config.ReadConfigFile(configPath)
|
||||
func loadConfig() *Config {
|
||||
config, err := ReadConfigFile(configPath)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "unable to load config file:", err)
|
||||
os.Exit(2)
|
||||
}
|
||||
return config
|
||||
}
|
||||
|
||||
// ReadConfigFile reads a config model from path of a yml file
|
||||
func ReadConfigFile(path string) (config *Config, err error) {
|
||||
config = &Config{}
|
||||
|
||||
file, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = toml.Unmarshal(file, config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package config
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
@ -10,8 +10,8 @@ import (
|
|||
func TestReadConfig(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
config, err := ReadConfigFile("../../config_example.toml")
|
||||
assert.NoError(err, "no error during reading")
|
||||
config, err := ReadConfigFile("../config_example.toml")
|
||||
assert.NoError(err)
|
||||
assert.NotNil(config)
|
||||
|
||||
assert.True(config.Respondd.Enable)
|
||||
|
@ -42,7 +42,7 @@ func TestReadConfig(t *testing.T) {
|
|||
graphitedb = dbs[0]
|
||||
assert.Equal(graphitedb["address"], "localhost:2003")
|
||||
|
||||
_, err = ReadConfigFile("testdata/config_failed.toml")
|
||||
_, err = ReadConfigFile("testdata/config_invalid.toml")
|
||||
assert.Error(err, "not unmarshalable")
|
||||
assert.Contains(err.Error(), "Near line ")
|
||||
|
|
@ -0,0 +1 @@
|
|||
foobar
|
|
@ -0,0 +1,12 @@
|
|||
package respond
|
||||
|
||||
import "github.com/FreifunkBremen/yanic/lib/duration"
|
||||
|
||||
type Config struct {
|
||||
Enable bool `toml:"enable"`
|
||||
Synchronize duration.Duration `toml:"synchronize"`
|
||||
Interfaces []string `toml:"interfaces"`
|
||||
Sites []string `toml:"sites"`
|
||||
Port int `toml:"port"`
|
||||
CollectInterval duration.Duration `toml:"collect_interval"`
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
"github.com/FreifunkBremen/yanic/database"
|
||||
"github.com/FreifunkBremen/yanic/lib/duration"
|
||||
"github.com/FreifunkBremen/yanic/runtime"
|
||||
)
|
||||
|
||||
//Config the config File of this daemon
|
||||
type Config struct {
|
||||
Respondd struct {
|
||||
Enable bool `toml:"enable"`
|
||||
Synchronize duration.Duration `toml:"synchronize"`
|
||||
Interfaces []string `toml:"interfaces"`
|
||||
Sites []string `toml:"sites"`
|
||||
Port int `toml:"port"`
|
||||
CollectInterval duration.Duration `toml:"collect_interval"`
|
||||
}
|
||||
Webserver struct {
|
||||
Enable bool `toml:"enable"`
|
||||
Bind string `toml:"bind"`
|
||||
Webroot string `toml:"webroot"`
|
||||
}
|
||||
Nodes runtime.NodesConfig
|
||||
Database database.Config
|
||||
}
|
||||
|
||||
// ReadConfigFile reads a config model from path of a yml file
|
||||
func ReadConfigFile(path string) (config *Config, err error) {
|
||||
config = &Config{}
|
||||
|
||||
file, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = toml.Unmarshal(file, config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
asdas
|
|
@ -0,0 +1,7 @@
|
|||
package webserver
|
||||
|
||||
type Config struct {
|
||||
Enable bool `toml:"enable"`
|
||||
Bind string `toml:"bind"`
|
||||
Webroot string `toml:"webroot"`
|
||||
}
|
Loading…
Reference in New Issue