packages feed

angel-0.6.2: Setup.hs

#!/usr/bin/env runhaskell
import Control.Monad
import Distribution.Simple
import Distribution.Simple.Setup
import Distribution.Simple.Program.Run
import Distribution.Simple.UserHooks
import Distribution.PackageDescription
import Distribution.Verbosity
-- import System.Process


main :: IO ()
main = defaultMainWithHooks simpleUserHooks
    {
      preTest = myTestHook
    }


-------------------------------------------------------------------------------
myTestHook
    :: Args
    -> TestFlags
    -> IO HookedBuildInfo
myTestHook _ _ = do
    buildTestFixtures
    return emptyHookedBuildInfo


-------------------------------------------------------------------------------
buildTestFixtures :: IO ()
buildTestFixtures = do
  runScript "ghc" ["--make", "test/test_jobs/StubbornJob.hs", "-o", "test/test_jobs/StubbornJob"]
  runScript "ghc" ["--make", "test/test_jobs/CompliantJob.hs", "-o", "test/test_jobs/CompliantJob"]


-------------------------------------------------------------------------------
runScript :: String -> [String] -> IO ()
runScript cmd args = do
  putStrLn $ unwords [cmd, unwords args]
  runProgramInvocation normal $ simpleProgramInvocation cmd args