{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} module Hcompta.CLI.Context where import Control.Monad (Monad(..)) import Data.Bool import Data.String (String) import Data.Eq (Eq) import Data.Maybe (Maybe(..)) import Data.Ord (Ord) import Text.Show (Show) import Prelude (($), Bounded(..), Enum(..), IO) import Hcompta.CLI.Lang data App = App data Context = Context { verbosity :: Verbosity , command :: String , color :: Maybe Bool , lang :: Lang } deriving (Show) context :: IO Context context = do lang <- get_lang return $ Context { verbosity = Verbosity_Info , command = "" , color = Nothing , lang } data Verbosity = Verbosity_Error | Verbosity_Warn | Verbosity_Info | Verbosity_Debug deriving (Bounded, Enum, Eq, Ord, Show)