shake-0.1.4: Main.hs
module Main where
import Data.Maybe
import System.Environment
import qualified Examples.Tar.Main as Tar
import qualified Examples.Self.Main as Self
import qualified Examples.Test.Basic1 as Basic1
import qualified Examples.Test.Directory as Directory
import qualified Examples.Test.Errors as Errors
import qualified Examples.Test.Files as Files
fakes = ["clean" * clean, "test" * test]
where (*) = (,)
mains = ["tar" * Tar.main, "self" * Self.main
,"basic1" * Basic1.main, "directory" * Directory.main, "errors" * Errors.main, "files" * Files.main]
where (*) = (,)
main :: IO ()
main = do
xs <- getArgs
case flip lookup (fakes ++ mains) =<< listToMaybe xs of
Nothing -> error $ "Enter one of the examples: " ++ unwords (map fst $ fakes ++ mains)
Just main -> main
clean :: IO ()
clean = sequence_ [withArgs [name,"clean"] main | (name,main) <- mains]
test :: IO ()
test = sequence_ [withArgs [name,"test"] main | (name,main) <- mains]