shake-0.1.3: 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
fakes = ["clean" * clean, "test" * test]
where (*) = (,)
mains = ["tar" * Tar.main, "self" * Self.main
,"basic1" * Basic1.main, "directory" * Directory.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]