diff options
author | Joris | 2015-08-31 13:56:29 +0200 |
---|---|---|
committer | Joris | 2015-08-31 13:56:29 +0200 |
commit | 47cbcb0011861cd1f35aa0a804dd2af0847c49c5 (patch) | |
tree | 409fd4c6e6fef0277873f561ff39e3b0aaea4b20 | |
parent | c874fdacf0e29b5743cd14de2ecb95fe60ddacca (diff) |
Adding a command line option parser working example
l--------- | perfume | 1 | ||||
-rw-r--r-- | perfume.cabal | 1 | ||||
-rw-r--r-- | src/CommandLineOptions.hs | 33 |
3 files changed, 34 insertions, 1 deletions
diff --git a/perfume b/perfume deleted file mode 120000 index f5b7185..0000000 --- a/perfume +++ /dev/null @@ -1 +0,0 @@ -./dist/build/perfume/perfume
\ No newline at end of file diff --git a/perfume.cabal b/perfume.cabal index f096a35..e508c42 100644 --- a/perfume.cabal +++ b/perfume.cabal @@ -18,3 +18,4 @@ executable perfume , aeson == 0.9.0.1 , utf8-string == 1.0.1.1 , directory == 1.2.3.1 + , optparse-applicative == 0.11.0.2 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" + ) |