X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Rakka%2FStorage%2FDefaultPage.hs;h=e6f51a55a284dbc8737b3274a00a5acf4501c08f;hp=c8efd4c800a0a09f3bb9887ba2df82c88614715c;hb=49b4f4696b29862524792bcc610dd09aa93c187c;hpb=9d86882fe1630c844e11cf2cf760110c04ea10d4 diff --git a/Rakka/Storage/DefaultPage.hs b/Rakka/Storage/DefaultPage.hs index c8efd4c..e6f51a5 100644 --- a/Rakka/Storage/DefaultPage.hs +++ b/Rakka/Storage/DefaultPage.hs @@ -56,13 +56,18 @@ getDefaultDirContents dir getDir' =<< getDataFileName "defaultPages" where getDir' :: FilePath -> IO (Set PageName) - getDir' dirPath - = getDirectoryContents (dirPath encodePageName dir) - >>= - return . S.fromList . map (m dirPath) . filter f + getDir' basePath + = do let childDirPath = basePath encodePageName dir + exists <- doesDirectoryExist childDirPath + if exists then + getDirectoryContents childDirPath + >>= + return . S.fromList . map (m basePath) . filter f + else + return S.empty m :: FilePath -> FilePath -> PageName - m dirPath = (dir ) . decodePageName . makeRelative dirPath . dropExtension + m basePath = (dir ) . decodePageName . makeRelative basePath . dropExtension f :: FilePath -> Bool f "." = False