cmdtheline-0.1.0.0: doc/examples/hello.hs
import System.Console.CmdTheLine
import Control.Applicative
-- Define a flag argument under the names '--silent' and '-s'
silent :: Term Bool
silent = flag $ optInfo [ "silent", "s" ]
-- Define the 0th positional argument, defaulting to the value '"world"' in
-- absence.
greeted :: Term String
greeted = pos 0 "world" posInfo { argName = "GREETED" }
hello :: Bool -> String -> IO ()
hello silent str =
if silent
then return ()
else putStrLn $ "Hello, " ++ str ++ "!"
term :: Term (IO ())
term = hello <$> silent <*> greeted
termInfo :: TermInfo
termInfo = def { termName = "Hello", version = "1.0" }
main :: IO ()
main = run ( term, termInfo )