packages feed

binary-protocol-1.0: Setup.hs

import Control.Monad
import Distribution.Simple
import System.Exit
import System.IO
import System.Process
import Text.Printf

main = defaultMainWithHooks (simpleUserHooks {runTests = runzeTests})

runzeTests _ _ _ _= do
  putStrLn "Checking for required modules..."
  found <- forM ["test-framework","test-framework-hunit"] $ \package_name -> do
    putStr $ printf "Checking for package %s...  " package_name
    hFlush stdout
    error_code <- system $ printf "ghc-pkg field %s version" package_name
    return (error_code == ExitSuccess)
  when ((not.and) found) $ do
    putStrLn "One or more packages needed for testing was not found."
    exitWith $ ExitFailure 1
  putStrLn ""
  putStrLn "Running tests..."
  putStrLn ""
  system "runhaskell -i. -i./tests tests/runtests.hs"
  return ()