lens-regex-0.1.0: 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 :: IO ()
main = do
sources <- findSources
doctest $
[ "-isrc"
, "-idist/build/autogen"
, "-optP-include"
, "-optPdist/build/autogen/cabal_macros.h"
]
++ sources
findSources :: IO [FilePath]
findSources = filter (isSuffixOf ".hs") <$> go "src"
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