@@ 0,0 1,7 @@
+* g!sum acid(1)
+* g!man acid(1) or g!man 1 acid
+* rss feed subscription (tracking commits)
+* Server greeting
+* 9front/plan9 source searching
+* various cat-v fetches (harmful, page search [get lucky])
+
@@ 6,6 6,7 @@ import (
"encoding/json"
"os"
"fmt"
+ "strings"
)
// Stores config for current state
@@ 13,44 14,73 @@ type Configuration struct {
LastChange string
}
-// Initializes current config (called once at start)
+// Initializes current config (called once at start) just .Read()?
func (c *Configuration) Init() {
+ c.Read()
}
// Writes current config
func (c *Configuration) Write() (rerr error) {
+ WRT:
rerr = nil
- f, err := os.Open("./cfg/glenda.cfg")
+ f, err := os.OpenFile("./cfg/glenda.cfg", os.O_RDWR, 0666)
defer f.Close()
if err != nil {
- fmt.Println("Error opening config, see: config.go")
+ if strings.Contains(err.Error(), "no such file or directory") {
+ Config.Setup()
+ goto WRT
+ return
+ } else {
+ fmt.Println("Error opening config (w), see: config.go")
+ fmt.Printf("%s\n", err)
+ rerr = err
+ }
+ } else {
+ e := json.NewEncoder(f)
+ err = e.Encode(Config)
+ if err != nil {
+ fmt.Println("Error writing config, see: config.go")
+ fmt.Printf("%s\n", err)
+ rerr = err
+ }
+ }
+
+ return
+}
+
+// Reads current config into memory
+func (c *Configuration) Read() (rerr error) {
+ 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
}
-
- e := json.NewEncoder(f)
- err = e.Encode(Config)
+
+ d := json.NewDecoder(f)
+ err = d.Decode(&Config)
if err != nil {
- fmt.Println("Error writing config, see: config.go")
+ fmt.Println("Error reading config, see: config.go")
fmt.Printf("%s\n", err)
rerr = err
}
+
return
}
-// Reads current config into memory
-func (c *Configuration) Read() {
-
-}
-
// Set up config for the first time (if one doesn't exist)
func (c *Configuration) Setup() {
- // Test/make cfg folder
-
-
- // Test/make cfg
-
-
+ err := os.Mkdir("./cfg", 0774)
+ if err != nil {
+ fmt.Println("Error in making cfg dir, see: config.go")
+ fmt.Println(err)
+ }
+
+ _, err = os.Create("cfg/glenda.cfg")
+ if err != nil {
+ fmt.Println("Error in making cfg file, see: config.go")
+ fmt.Println(err)
+ }
}
// Global variables are bad
@@ 80,6 80,7 @@ func main() {
go mux.Listener()
go mux.CommMux()
go CommMux()
+ Config.Init()
Session.UpdateStatus(0, "with #cat-v")