Skip to content

Instantly share code, notes, and snippets.

@cestrand
Last active December 23, 2017 12:23
Show Gist options
  • Save cestrand/b1939f93c7648ad7099edd1ab9339932 to your computer and use it in GitHub Desktop.
Save cestrand/b1939f93c7648ad7099edd1ab9339932 to your computer and use it in GitHub Desktop.
[Haskell] getopts-ab-option
module Main where
import System.Console.GetOpt
import System.Environment
data Flag = OptionA | OptionB
options :: [OptDescr Flag]
options =
[ Option ['a'] [] (NoArg OptionA) "Option A"
, Option ['b'] [] (NoArg OptionB) "Option B"
]
main :: IO ()
main = do
args <- getArgs
case (getOpt Permute options args) of
([OptionA], [], []) -> print "Option A"
([OptionB], [], []) -> print "Option B"
_ -> mapM_ putStrLn (lines $ usageInfo "Usage: prog [OPTION...]" options)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment