From 47cbcb0011861cd1f35aa0a804dd2af0847c49c5 Mon Sep 17 00:00:00 2001 From: Joris Date: Mon, 31 Aug 2015 13:56:29 +0200 Subject: Adding a command line option parser working example --- src/CommandLineOptions.hs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/CommandLineOptions.hs (limited to 'src/CommandLineOptions.hs') diff --git a/src/CommandLineOptions.hs b/src/CommandLineOptions.hs new file mode 100644 index 0000000..2a1f585 --- /dev/null +++ b/src/CommandLineOptions.hs @@ -0,0 +1,33 @@ +module CommandLineOptions + ( Sample(..) + , getOptions + ) where + +import Options.Applicative + +data Sample = Sample + { hello :: String + , quiet :: Bool + } + +getOptions :: IO Sample +getOptions = + execParser $ info + (helper <*> sample) + ( fullDesc + <> progDesc "Print a greeting for TARGET" + <> header "hello - a test for optparse-applicative" + ) + +sample :: Parser Sample +sample = + Sample + <$> strOption + ( long "name" + <> metavar "TARGET" + <> help "Target for the greeting" + ) + <*> switch + ( long "quiet" + <> help "Whether to be quiet" + ) -- cgit v1.2.3