{-# LANGUAGE CPP #-}
#if !MIN_VERSION_base(4,8,0)
import Data.Functor ((<$>))
#endif
import Test.DocTest
import Control.Monad
import System.Directory
import System.FilePath
main :: IO ()
main = do
fs <- listFilesRecur "src"
doctest $ "-isrc" : fs
listFilesRecur :: FilePath -> IO [FilePath]
listFilesRecur dir = do
entries <-
map (dir </>) .
filter (\f -> f /= "." && f /= ".." && takeExtension f /= ".swp") <$>
getDirectoryContents dir
dirs <- filterM doesDirectoryExist entries
files <- filterM doesFileExist entries
rests <- mapM listFilesRecur dirs
return $ concat $ files : rests