From 182338a22fdc5b02bf0d272b98daa4e4e6253fa2 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Fri, 17 Apr 2020 12:57:37 +0200 Subject: Initial commit --- go.mod | 5 +++++ go.sum | 4 ++++ main.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..590d5c2 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/Necoro/feed2imap-go + +go 1.13 + +require gopkg.in/yaml.v2 v2.2.8 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..74b18ac --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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-54-g00ecf