cmdtheline-0.2.3: test/Hello.hs
module Hello where
import System.Console.CmdTheLine
import Control.Applicative
import Control.Monad ( when )
-- Define a flag argument under the names '--silent' and '-s'
silent :: Term Bool
silent = value . flag $ optInfo [ "silent", "s" ]
-- Define the 0th positional argument, defaulting to the value '"world"' in
-- absence.
greeted :: Term String
greeted = value $ pos 0 "world" posInfo { posName = "GREETED" }
hello :: Bool -> String -> IO ()
hello silent str = when (not silent) . putStrLn $ "Hello, " ++ str ++ "!"
term :: Term (IO ())
term = hello <$> silent <*> greeted
termInfo :: TermInfo
termInfo = defTI { termName = "Hello", version = "1.0" }