desert-0.1.0.1: src/Desert.hs
module Desert where
import Data.Char
import qualified Desert.New as New
import qualified Desert.Build as Build
import qualified Desert.Test as Test
import qualified Desert.Run as Run
import qualified Desert.Clean as Clean
import Desert.Plugin
newtype Command = Command { unCommand :: String }
newtype CommandArgs = CommandArgs { unCommandArgs :: [String] }
openKeg :: Command -> CommandArgs -> IO ()
openKeg c a = do
let command = unCommand c
args = unCommandArgs a
plugin = case toLower `fmap` command of
"new" -> New.plugin
"build" -> Build.plugin
"test" -> Test.plugin
"run" -> Run.plugin
"clean" -> Clean.plugin
subc -> error $ "not support subcmd " ++ subc ++ " yet"
run plugin args