From 182338a22fdc5b02bf0d272b98daa4e4e6253fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Fri, 17 Apr 2020 12:57:37 +0200 Subject: Initial commit --- main.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..9f20203 --- /dev/null +++ b/main.go @@ -0,0 +1,54 @@ +package main + +import ( + "flag" + "fmt" + "io/ioutil" + "log" + + "gopkg.in/yaml.v2" +) + +var cfg = flag.String("f", "config.yml", "configuration file") + +type ConfigMap map[string]interface{} + +type Feed struct { + Name string + Url string + MinFreq int `yaml:"min-frequency"` + ConfigMap `yaml:",inline"` +} + +type Group struct { + Group string + Feeds []GroupFeed +} + +type GroupFeed struct { + Target string + Feed `yaml:",inline"` + Group `yaml:",inline"` +} + +type Yaml struct { + GlobalConfig ConfigMap `yaml:",inline"` + Feeds []GroupFeed +} + +func main() { + log.Print("Starting up...") + flag.Parse() + + log.Printf("Reading configuration file '%s'", *cfg) + buf, err := ioutil.ReadFile(*cfg) + if err != nil { + msg := fmt.Sprint("No file found: ", *cfg) + panic(msg) + } + + var m Yaml + yaml.Unmarshal(buf, &m) + fmt.Printf("--- m:\n%+v\n\n", m) + +} -- cgit v1.2.3