git.iko.soy/typeable/http-api-data
on 042adad help sign in
31 lines 887 B history raw
1module Main where
3import Build_doctest (autogen_dir, deps)
4import Control.Applicative
5import Control.Monad
6import Data.List
7import System.Directory
8import System.FilePath
9import Test.DocTest
11main :: IO ()
12main = getSources >>= \sources -> doctest $
13 "-isrc"
14 : "-Iinclude"
15 : ("-i" ++ autogen_dir)
16 : "-optP-include"
17 : ("-optP" ++ autogen_dir ++ "/cabal_macros.h")
18 : "-hide-all-packages"
19 : map ("-package="++) deps ++ sources
21getSources :: IO [FilePath]
22getSources = filter (isSuffixOf ".hs") <$> go "src"
23 where
24 go dir = do
25 (dirs, files) <- getFilesAndDirectories dir
26 (files ++) . concat <$> mapM go dirs
28getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])
29getFilesAndDirectories dir = do
30 c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir
31 (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c