disco-0.1.0.0: example/TestExamples.hs
module Main where
import System.Directory
import System.Exit
import System.FilePath
import System.Process
import Control.Monad
exampleDirs :: [FilePath]
exampleDirs = ["example", "docs/tutorial/example", "lib"]
main :: IO ()
main = mapM_ checkDir exampleDirs
checkDir :: FilePath -> IO ()
checkDir dir = do
examples <- filter ((== ".disco") . takeExtension) <$> getDirectoryContents dir
res <- and <$> mapM (checkExample . (dir </>)) examples
when (not res) $ exitFailure
checkExample :: FilePath -> IO Bool
checkExample exampleFile = do
ex <- system ("disco --check " ++ exampleFile)
return (ex == ExitSuccess)