catbase/config/config.go

75 lines
1.6 KiB
Go
Raw Normal View History

2016-01-17 18:00:44 +00:00
// © 2013 the CatBase Authors under the WTFPL. See AUTHORS for the list of authors.
package config
import "encoding/json"
import "fmt"
import "io/ioutil"
// Config stores any system-wide startup information that cannot be easily configured via
// the database
type Config struct {
2016-03-10 18:37:07 +00:00
DB struct {
File string
Name string
Server string
}
Channels []string
MainChannel string
Plugins []string
Type string
Irc struct {
Server, Pass string
}
Nick string
FullName string
2013-02-21 03:24:51 +00:00
Version string
CommandChar string
RatePerSec float64
2013-02-21 03:24:51 +00:00
QuoteChance float64
QuoteTime int
LogLength int
Admins []string
2013-06-01 17:29:12 +00:00
HttpAddr string
2013-02-21 03:24:51 +00:00
UntappdToken string
UntappdFreq int
UntappdChannels []string
EnforceNicks bool
2013-02-21 03:24:51 +00:00
WelcomeMsgs []string
TwitterConsumerKey string
TwitterConsumerSecret string
TwitterUserKey string
TwitterUserSecret string
StartupFact string
BadMsgs []string
2013-04-21 16:37:04 +00:00
Bad struct {
Msgs []string
Nicks []string
Hosts []string
}
}
// Readconfig loads the config data out of a JSON file located in cfile
func Readconfig(version, cfile string) *Config {
fmt.Printf("Using %s as config file.\n", cfile)
file, e := ioutil.ReadFile(cfile)
if e != nil {
panic("Couldn't read config file!")
}
var c Config
err := json.Unmarshal(file, &c)
if err != nil {
panic(err)
}
c.Version = version
2012-08-25 04:49:48 +00:00
2016-03-10 18:37:07 +00:00
if c.Type == "" {
c.Type = "irc"
}
fmt.Printf("godeepintir version %s running.\n", c.Version)
2012-08-25 04:49:48 +00:00
return &c
}