HUnit-1.2.2.0: Setup.hs
#!/usr/bin/env runhaskell
module Main (main) where
import Data.List (isSuffixOf)
import Distribution.PackageDescription
import Distribution.Simple
import System.FilePath
import System.Process
main :: IO ()
main = defaultMainWithHooks (simpleUserHooks {runTests = _runTests, instHook = _instHook})
where
-- Run all executables with names that end in -tests
_runTests _ _ pd _ = do
let exeNames = ["dist" </> "build" </> fp </> fp | fp <- map exeName (executables pd)]
sequence [_runTest e | e <- exeNames, isSuffixOf "-tests" e]
return ()
_runTest fp = do
ph <- runCommand fp
waitForProcess ph
-- Only install executables that don't end in -tests
_instHook pd lbi uhs ifs = do
let execs = filter (\e -> not $ isSuffixOf "-tests" (exeName e)) (executables pd)
(instHook simpleUserHooks) (pd {executables = execs}) lbi uhs ifs