29 lines
902 B
Haskell
29 lines
902 B
Haskell
module Main where
|
|
|
|
import Data.List (isPrefixOf)
|
|
import System.Directory
|
|
import System.FilePath
|
|
import System.FilePath.Find
|
|
import Test.DocTest
|
|
|
|
main :: IO ()
|
|
main = do
|
|
files <- find always (extension ==? ".hs") "src"
|
|
cabalMacrosFile <- getCabalMacrosFile
|
|
doctest $ [ "-isrc"
|
|
, "-optP-include"
|
|
, "-optP" ++ cabalMacrosFile
|
|
, "-XOverloadedStrings"
|
|
, "-XFlexibleInstances"
|
|
, "-XMultiParamTypeClasses"
|
|
, "-XDataKinds"
|
|
, "-XTypeOperators"
|
|
] ++ files
|
|
|
|
getCabalMacrosFile :: IO FilePath
|
|
getCabalMacrosFile = do
|
|
contents <- getDirectoryContents "dist"
|
|
let rest = "build" </> "autogen" </> "cabal_macros.h"
|
|
return $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
|
|
[x] -> "dist" </> x </> rest
|
|
[] -> "dist" </> rest
|