From ac5d697efa679487ceda0658945cf5653eaf35ed Mon Sep 17 00:00:00 2001 From: Sean Hinchee Date: Mon, 29 Jan 2018 20:28:50 +0000 Subject: [PATCH] migrated config to mux, this makes more sense --- main.go | 2 +- misc.go | 11 +--------- config.go => x/mux/config.go | 42 ++++++++++++++++++++++-------------- x/mux/misc.go | 16 ++++++-------- 4 files changed, 34 insertions(+), 37 deletions(-) rename config.go => x/mux/config.go (71%) diff --git a/main.go b/main.go index 80e9a10d91df0062c9e47dcc4c65b115673e8282..9428104596d4925b5288ebf95cf1584c87053e4c 100644 --- a/main.go +++ b/main.go @@ -80,7 +80,7 @@ func main() { go mux.Listener() go mux.CommMux() go CommMux() - Config.Init() + go mux.Config.Init() Session.UpdateStatus(0, "with #cat-v") diff --git a/misc.go b/misc.go index dc9550f4743684dbcfb8fb8c4502c7460c6eeece..c2ee41784d1245098ba703a6f338eace965aa8a1 100644 --- a/misc.go +++ b/misc.go @@ -3,7 +3,7 @@ package main // Miscellaneous utilities for communicating with Mux import ( - "bitbucket.org/henesy/glenda/x/mux" +// "bitbucket.org/henesy/glenda/x/mux" "time" ) @@ -11,15 +11,6 @@ import ( func CommMux() { for { select { - case r := <-mux.GlendaChan: - if r == "dump" { - err := Config.Write() - if err != nil { - mux.MuxChan <- "dump failed" - } else { - mux.MuxChan <- "dump ok" - } - } default: } diff --git a/config.go b/x/mux/config.go similarity index 71% rename from config.go rename to x/mux/config.go index c586b1a20508015ce08fbafc5efc3be4db19efcc..9958dac98afd248b7bf64352c688e6657344cb81 100644 --- a/config.go +++ b/x/mux/config.go @@ -1,4 +1,4 @@ -package main +package mux // General configuration utilities for Glenda @@ -7,11 +7,12 @@ import ( "os" "fmt" "strings" + "github.com/SlyMarbo/rss" ) // Stores config for current state type Configuration struct { - LastChange string + Feeds []rss.Feed } // Initializes current config (called once at start) ­ just .Read()? @@ -21,15 +22,15 @@ func (c *Configuration) Init() { // Writes current config func (c *Configuration) Write() (rerr error) { - WRT: + WRT: rerr = nil f, err := os.OpenFile("./cfg/glenda.cfg", os.O_RDWR, 0666) defer f.Close() if err != nil { if strings.Contains(err.Error(), "no such file or directory") { + // danger: this can go infinite Config.Setup() goto WRT - return } else { fmt.Println("Error opening config (w), see: config.go") fmt.Printf("%s\n", err) @@ -50,21 +51,30 @@ func (c *Configuration) Write() (rerr error) { // Reads current config into memory func (c *Configuration) Read() (rerr error) { + RD: f, err := os.Open("./cfg/glenda.cfg") if err != nil { - fmt.Println("Error opening config (r), see: config.go") - fmt.Printf("%s\n", err) - rerr = err - } - - d := json.NewDecoder(f) - err = d.Decode(&Config) - if err != nil { - fmt.Println("Error reading config, see: config.go") - fmt.Printf("%s\n", err) - rerr = err + if strings.Contains(err.Error(), "no such file or directory") { + // danger: this can go infinite + Config.Setup() + goto RD + } else { + fmt.Println("Error opening config (r), see: config.go") + fmt.Printf("%s\n", err) + rerr = err + } + } else { + d := json.NewDecoder(f) + err = d.Decode(&Config) + if err != nil { + fmt.Println("Error reading config, see: config.go") + fmt.Printf("%s\n", err) + rerr = err + Config.Write() + goto RD + } } - + return } diff --git a/x/mux/misc.go b/x/mux/misc.go index aae56b725893e958ffc01e8aae77bb2134fc13ed..73a85711a68e1817620aec83733907cf70a39a10 100644 --- a/x/mux/misc.go +++ b/x/mux/misc.go @@ -24,14 +24,6 @@ func CommMux() { // Listen for signals till death do us part for { select { - case r := <-MuxChan: - if r == "dump ok" { - dumpChan <- "Ok." - } else if r == "dump failed" { - dumpChan <- "Dump Failed. Check Logs." - } - case <-dumpChan: - GlendaChan <- "dump" default: } @@ -43,8 +35,12 @@ func CommMux() { func (m *Mux) Dump(ds *discordgo.Session, dm *discordgo.Message, ctx *Context) { resp := "" - dumpChan <- "" - resp += <-dumpChan + err := Config.Write() + if err != nil { + resp += "Dump failed. Check logs." + } else { + resp += "Ok." + } resp += "\n"