module Main where import System import System.IO import System.Directory import Text.Printf import Data.Maybe import Data.List import System.FilePath import Data.Validate import Control.Applicative import Data.Lighttpd import New import Help import Build import Start import Restart import Stop import Configure import Clean import Utils main :: IO () main = do args <- getArgs case args of (cmd:opts) -> runCmd cmd opts _ -> showHelp runCmd :: String -> [String] -> IO () runCmd cmd xs = fromMaybe showHelp $ lookup cmd commands >>= return . ($ xs) commands :: [(String, [String] -> IO ())] commands = [("new",new) ,("build",build) ,("start",start) ,("restart",restart) ,("stop",stop) ,("refresh",refresh) ,("configure",configure) ,("clean",clean)]