arguedit-0.1.0.0: src/Main.hs
{-# LANGUAGE CPP, TemplateHaskell #-}
-----------------------------------------------------------------------------
{-|
Module : Main
Copyright :
License : GPL2
Maintainer : msjean@gmx.de
Stability : experimental
Portability : POSIX
This is the main entry point for the ArguEdit.bin executable.
Further entry points such as for testing purposes are also meant to be added here.
-}
--
--
--
-----------------------------------------------------------------------------
module Main (
main
) where
import ArguEdit (start)
import Control.Monad (unless)
import Data.List (stripPrefix)
import System.Exit (exitFailure)
--import Test.QuickCheck.All (quickCheckAll)
-- Simple function to create a hello message.
--hello s = "Hello " ++ s
-- Tell QuickCheck that if you strip "Hello " from the start of
-- hello s you will be left with s (for any s).
--prop_hello s = stripPrefix "Hello " (hello s) == Just s
-- Hello World
exeMain = do
-- putStrLn (hello "World")
ArguEdit.start
-- Entry point for unit tests.
--testMain = do
-- allPass <- $quickCheckAll -- Run QuickCheck on all prop_ functions
-- unless allPass exitFailure
-- This is a clunky, but portable, way to use the same Main module file
-- for both an application and for unit tests.
-- MAIN_FUNCTION is preprocessor macro set to exeMain or testMain.
-- That way we can use the same file for both an application and for tests.
#ifndef MAIN_FUNCTION
#define MAIN_FUNCTION exeMain
#endif
main = MAIN_FUNCTION