From 619fbe97565fd7220b08f2522aaf359f10a0239e Mon Sep 17 00:00:00 2001
From: Julien Dessaux <judessaux@gmail.com>
Date: Wed, 7 Mar 2012 22:01:13 +0100
Subject: [PATCH] Added db name argument to the duck module.

---
 Hsbot/Plugin/Duck.hs | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/Hsbot/Plugin/Duck.hs b/Hsbot/Plugin/Duck.hs
index c0da0c6..0f2fd80 100644
--- a/Hsbot/Plugin/Duck.hs
+++ b/Hsbot/Plugin/Duck.hs
@@ -2,6 +2,7 @@
 -- | This module is an IRC plugin that generates and kills ducks
 module Hsbot.Plugin.Duck
     ( DuckArgs (..)
+    , defaultDuckArgs
     , duck
     , theDuck
     ) where
@@ -52,17 +53,21 @@ $(makeAcidic ''StatDB ['getDuckStats, 'updateScore])
 duck :: PluginId
 duck = PluginId
     { pluginName = "duck"
-    , pluginEp   = theDuck DuckArgs { duckChannel = "", duckFreq = 10 } }
+    , pluginEp   = theDuck defaultDuckArgs }
 
 data DuckArgs = DuckArgs
     { duckChannel :: String
+    , duckDbName  :: String
     , duckFreq    :: Int }
 
+defaultDuckArgs :: DuckArgs
+defaultDuckArgs = DuckArgs { duckChannel = "", duckDbName = "duckDB", duckFreq = 7200 }
+
 -- | An IRC plugin that generates and kills ducks
 theDuck :: DuckArgs -> Plugin (Env IO) ()
-theDuck (DuckArgs channel seconds) = do
+theDuck (DuckArgs channel dbName seconds) = do
     baseDir <- liftIO $ System.Environment.XDG.BaseDir.getUserDataDir "hsbot"
-    statDB <- liftIO $ openLocalStateFrom (baseDir ++ "/duckDB/") emptyStatDB
+    statDB <- liftIO $ openLocalStateFrom (baseDir ++ "/" ++ dbName ++ "/") emptyStatDB
     ducksMVar <- liftIO newEmptyMVar
     timeMVar <- liftIO $ newMVar seconds
     duckSpawner channel seconds ducksMVar