packages feed

dyre-0.8.0: Tests/basic/BasicTest.hs

module BasicTest where

import qualified Config.Dyre as Dyre

import Config.Dyre.Relaunch
import System.IO

data Config = Config { message :: String, errorMsg :: Maybe String }

defaultConfig :: Config
defaultConfig = Config "Basic Test Version 1.0" Nothing

showError :: Config -> String -> Config
showError cfg msg = cfg { errorMsg = Just msg }

realMain Config{message = message, errorMsg = errorMsg } = do
    case errorMsg of
         Just em -> putStrLn "Compile Error"
         Nothing -> do
            state <- restoreTextState 1
            if state < 3
               then relaunchWithTextState (state + 1) Nothing
               else return ()
            putStrLn $ message ++ " - " ++ show state

basicTest = Dyre.wrapMain $ Dyre.defaultParams
    { Dyre.projectName = "basicTest"
    , Dyre.realMain    = realMain
    , Dyre.showError   = showError
    , Dyre.statusOut   = const . return $ ()
    }