diff --git a/config.example.yaml b/config.example.yaml index 02dc9dd..bc766ca 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -1,4 +1,5 @@ watbot: + database: wat.db # wat.db (in the working directory) is the default server: host: irc.casa # mandatory, no default port: 6697 diff --git a/main.go b/main.go index fb71444..1d13154 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,7 @@ type Config struct { } type watConfig struct { + Database string `default:"wat.db" yaml:"database"` Nick string `yaml:"nick"` Pass string `yaml:"pass"` User string `yaml:"user"` @@ -99,6 +100,7 @@ func main() { Name: config.Name, } watConfig := wat.WatConfig{ + DatabasePath: config.Database, AutoJoinChannels: config.Channels.Join, PermittedChannels: config.Channels.Permitted, IgnoredHosts: config.Ignores.Hosts, diff --git a/wat/bot.go b/wat/bot.go index ffa6d8b..806906c 100644 --- a/wat/bot.go +++ b/wat/bot.go @@ -20,6 +20,7 @@ type WatBot struct { } type WatConfig struct { + DatabasePath string BotHosts []string BotGames BotGameConfig AdminHosts []string @@ -30,7 +31,7 @@ type WatConfig struct { func NewWatBot(config *irc.ClientConfig, watConfig *WatConfig, serverConn *tls.Conn) *WatBot { wat := WatBot{conn: serverConn, Nick: config.Nick, c: watConfig} - wat.Db = NewWatDb() + wat.Db = NewWatDb(watConfig.DatabasePath) wat.game = NewWatGame(&wat, wat.Db) wat.integration = NewWatIntegration(&wat, wat.Db, &WatIntegrationConfig{BotHosts: watConfig.BotHosts, BotGames: watConfig.BotGames}) config.Handler = irc.HandlerFunc(wat.HandleIrcMsg) diff --git a/wat/db.go b/wat/db.go index 8971223..cd59892 100644 --- a/wat/db.go +++ b/wat/db.go @@ -52,10 +52,10 @@ type WatDb struct { db *gorm.DB } -func NewWatDb() *WatDb { +func NewWatDb(dbpath string) *WatDb { w := WatDb{} var err error - w.db, err = gorm.Open(sqlite.Open("wat.db"), &gorm.Config{}) + w.db, err = gorm.Open(sqlite.Open(dbpath), &gorm.Config{}) if err != nil { panic(err) }