PageRenderTime 47ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/Setup.hs

http://github.com/jamwt/Angel
Haskell | 40 lines | 28 code | 8 blank | 4 comment | 0 complexity | cf7de6440e440aaf327e531daf1e9e18 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. #!/usr/bin/env runhaskell
  2. import Control.Monad
  3. import Distribution.Simple
  4. import Distribution.Simple.Setup
  5. import Distribution.Simple.Program.Run
  6. import Distribution.Simple.UserHooks
  7. import Distribution.PackageDescription
  8. import Distribution.Verbosity
  9. -- import System.Process
  10. main :: IO ()
  11. main = defaultMainWithHooks simpleUserHooks
  12. {
  13. preTest = myTestHook
  14. }
  15. -------------------------------------------------------------------------------
  16. myTestHook
  17. :: Args
  18. -> TestFlags
  19. -> IO HookedBuildInfo
  20. myTestHook _ _ = do
  21. buildTestFixtures
  22. return emptyHookedBuildInfo
  23. -------------------------------------------------------------------------------
  24. buildTestFixtures :: IO ()
  25. buildTestFixtures = do
  26. runScript "ghc" ["--make", "test/test_jobs/StubbornJob.hs", "-o", "test/test_jobs/StubbornJob"]
  27. runScript "ghc" ["--make", "test/test_jobs/CompliantJob.hs", "-o", "test/test_jobs/CompliantJob"]
  28. -------------------------------------------------------------------------------
  29. runScript :: String -> [String] -> IO ()
  30. runScript cmd args = do
  31. putStrLn $ unwords [cmd, unwords args]
  32. runProgramInvocation normal $ simpleProgramInvocation cmd args