{- | Module : $Header$ Description : Entrypoint of the application. Author : Nils 'bash0r' Jonsson Copyright : (c) 2015 Nils 'bash0r' Jonsson License : MIT Maintainer : aka.bash0r@gmail.com Stability : unstable Portability : non-portable (Portability is untested.) The 'Main' module is the entrypoint of the application. -} module Main ( main ) where import Control.Applicative import Control.Command import Control.Monad import Control.Router import System.Environment import MultiCabal.Instruction import MultiCabal.Commands main :: IO () main = getArgs >>= invoke >> return () where invoke [] = execute Help [] invoke (cmd:args) = case route availableCommands cmd of Just a -> execute a args Nothing -> putStrLn ("Command " ++ cmd ++ " is not available.\n")