packages feed

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 )