ui-command-0.5.0: UI/Command/App.hs
module UI.Command.App (
App,
appArgs,
appConfig,
AppContext(..)
) where
import Data.Default
import Control.Monad.Reader
import System.Console.GetOpt
import Control.Monad (when)
import System.Environment (getArgs)
import System.Exit
------------------------------------------------------------
-- App
--
data (Default config) => AppContext config = AppContext {
appContextConfig :: config,
appContextArgs :: [String]
}
type App config = ReaderT (AppContext config) IO
-- | Get the application arguments
appArgs :: (Default config) => App config [String]
appArgs = asks appContextArgs
-- | Get the application config
appConfig :: (Default config) => App config config
appConfig = asks appContextConfig