module Main where import System.Environment import Control.Applicative import Runner import Config import System.Directory import System.FilePath main :: IO () main = do (_ : _ : dst : args) <- getArgs customConfiguration <- case args of (configFile : _) -> Just <$> config configFile _ -> return Nothing let sources = case customConfiguration of Just (Config _ (Just sourceFolders')) -> sourceFolders' _ -> ["src"] files <- mapM getAbsDirectoryContents sources let testDriverFileContents = driver (concat files) customConfiguration writeFile dst testDriverFileContents getAbsDirectoryContents :: FilePath -> IO [FilePath] getAbsDirectoryContents dir = getDirectoryContents dir >>= mapM (canonicalizePath . (dir ))