1 module Parse ( ekitaiOpts ) where
3 import System.Console.GetOpt
4 import System.Environment
13 defaultOptions = Options
18 options :: [OptDescr (Options -> Options)]
20 [ Option ['h'] ["help"]
21 (NoArg (\ opts -> opts { optHelp = True }))
22 "display's this message"
23 , Option ['c'] ["color", "colour"]
24 (NoArg (\ opts -> opts { optColor = True }))
28 ekitaiOpts :: [String] -> IO (Options, String)
30 case getOpt RequireOrder options argv of
31 (o, [n], []) -> return (foldl (flip id) defaultOptions o, n)
32 (o, _, []) -> ioError $ userError $ "must supply input file"
33 (_, _, errs) -> ioError $ userError $ (concat errs)