packages feed

twitter-conduit-0.0.1: tests/doctests.hs

module Main where

import Test.DocTest
import System.Directory
import System.FilePath
import Data.List
import Control.Monad
import Control.Applicative

main = do
  sources <- findSources "Web"
  doctest $ args ++ sources
  where
    args = [ "-i."
           , "-idist/build/autogen"
           , "-optP-include"
           , "-optPdist/build/autogen/cabal_macros.h"
           ]

findSources :: FilePath -> IO [FilePath]
findSources dir = filter (isSuffixOf ".hs") <$> go dir
  where
    go dir = do
      (dirs, files) <- listFiles dir
      (files ++) . concat <$> mapM go dirs
    listFiles dir = do
      entries <- map (dir </>) . filter (`notElem` [".", ".."]) <$> getDirectoryContents dir
      (,) <$> filterM doesDirectoryExist entries <*> filterM doesFileExist entries