iris-0.0.0.0: app/Main.hs
module Main (main) where
import Control.Monad.IO.Class (MonadIO (..))
import Control.Monad.Reader (MonadReader)
import qualified Colourista
import qualified Iris
import qualified Paths_iris as Autogen
newtype App a = App
{ unApp :: Iris.CliApp () () a
} deriving newtype
( Functor
, Applicative
, Monad
, MonadIO
, MonadReader (Iris.CliEnv () ())
)
appSettings :: Iris.CliEnvSettings () ()
appSettings = Iris.defaultCliEnvSettings
{ Iris.cliEnvSettingsHeaderDesc = "Iris usage example"
, Iris.cliEnvSettingsProgDesc = "A simple grep utility"
, Iris.cliEnvSettingsVersionSettings =
Just (Iris.defaultVersionSettings Autogen.version)
{ Iris.versionSettingsMkDesc = \v -> "Iris Example v" <> v
}
, Iris.cliEnvSettingsRequiredTools = ["curl", "ghc"]
}
app :: App ()
app = do
liftIO $ putStrLn "Hello from an Iris app!"
Iris.putStdoutColouredLn
(Colourista.formatWith [Colourista.yellow, Colourista.bold])
"I'm yellow"
Iris.putStderrColouredLn
(Colourista.formatWith [Colourista.blueBg])
"I'm white on blue"
main :: IO ()
main = Iris.runCliApp appSettings $ unApp app