]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Storage/Impl.hs
Use time-w3c instead of Rakka.W3CDateTime
[Rakka.git] / Rakka / Storage / Impl.hs
index e1bad11015a987b32d95d079594ae731550f85fb..304b8178384463fc05dd86eba72daa0035f2c2ea 100644 (file)
@@ -12,11 +12,13 @@ module Rakka.Storage.Impl
 
 import           Control.Concurrent
 import           Control.Concurrent.STM
+import           Control.Exception
 import           Control.Monad
 import           Data.Maybe
 import           Data.Set (Set)
 import qualified Data.Set as S
 import           Data.Time
+import qualified Data.Time.W3C as W3C
 import           Network.HTTP.Lucu
 import           Network.HTTP.Lucu.Utils
 import           Network.URI
@@ -26,7 +28,6 @@ import           Rakka.Page
 import           Rakka.Storage.DefaultPage
 import           Rakka.Storage.Repos
 import           Rakka.Storage.Types
-import           Rakka.W3CDateTime
 import           Subversion.Types
 import           Subversion.FileSystem
 import           Subversion.Repository
@@ -107,7 +108,7 @@ startIndexManager :: FilePath -> Repository -> (Page -> IO Document) -> IO (TCha
 startIndexManager lsdir repos mkDraft
     = do chan  <- newTChanIO
          index <- openIndex indexDir revFile
-         _     <- forkIO (loop chan index)
+         _     <- forkIO (loop chan index `finally` closeDatabase index)
          return chan
     where
       indexDir = lsdir </> "index"
@@ -211,7 +212,7 @@ searchIndex index cond
                           liftM (read . fromJust)
                                 (getDocAttr index docId "rakka:revision")
                lastMod <- unsafeInterleaveIO $
-                          liftM (zonedTimeToUTC . fromJust . parseW3CDateTime . fromJust)
+                          liftM (zonedTimeToUTC . fromJust . W3C.parse . fromJust)
                                 (getDocAttr index docId "@mdate")
                summary <- unsafeInterleaveIO $
                           getDocAttr index docId "rakka:summary"