ronn-opt-env-conf 1.0.0.0 → 1.0.1.0
raw patch · 6 files changed
+73/−78 lines, 6 filesdep +ronn-testdep −filepathdep −hspec-goldendep ~ronnPVP ok
version bump matches the API change (PVP)
Dependencies added: ronn-test
Dependencies removed: filepath, hspec-golden
Dependency ranges changed: ronn
API changes (from Hackage documentation)
+ Ronn.OptEnvConf: envDefinitions :: Parser a -> [Definition]
+ Ronn.OptEnvConf: instance Ronn.HasSections OptEnvConf.Parser.Parser
+ Ronn.OptEnvConf: optDefinitions :: Parser a -> [Definition]
+ Ronn.OptEnvConf: optSynopsis :: Parser a -> [Part]
Files
- CHANGELOG.md +5/−1
- README.md +18/−0
- ronn-opt-env-conf.cabal +3/−6
- src/Ronn/OptEnvConf.hs +16/−3
- tests/Main.hs +2/−1
- tests/Ronn/OptEnvConfSpec.hs +29/−67
CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/pbrisbin/ronn/compare/ronn-opt-env-conf-v1.0.0.0...main)+## [_Unreleased_](https://github.com/pbrisbin/ronn/compare/ronn-opt-env-conf-v1.0.1.0...main)++## [v1.0.1.0](https://github.com/pbrisbin/ronn/tree/ronn-opt-env-conf-v1.0.1.0)++- Add `HasSections` instance ## [v1.0.0.0](https://github.com/pbrisbin/ronn/tree/ronn-opt-env-conf-v1.0.0.0)
README.md view
@@ -0,0 +1,18 @@+# `ronn-opt-env-conf`++[](https://hackage.haskell.org/package/ronn-opt-env-conf)+[](http://stackage.org/nightly/package/ronn-opt-env-conf)+[](http://stackage.org/lts/package/ronn-opt-env-conf)++Automatically create a `Ronn` value from `OptEnvConf.Parser`.++## Usage++See [the test][test] and [the result][golden].++[test]: ./tests/Ronn/OptEnvConfSpec.hs+[golden]: ./../doc/ronn-opt-env-conf.1.ronn++---++[CHANGELOG](./ronn-opt-env-conf/CHANGELOG.md)
ronn-opt-env-conf.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: ronn-opt-env-conf-version: 1.0.0.0+version: 1.0.1.0 license: AGPL-3 maintainer: Pat Brisbin homepage: https://github.com/pbrisbin/ronn#readme@@ -43,7 +43,7 @@ build-depends: base >=4.16.4.0 && <5, opt-env-conf,- ronn >=1.1.0.0,+ ronn >=1.1.1.0, text >=1.2.5.0 if impl(ghc >=9.8)@@ -75,13 +75,10 @@ build-depends: base >=4.16.4.0 && <5,- filepath >=1.4.2.2, hspec >=2.9.7,- hspec-golden >=0.2.1.0, opt-env-conf,- ronn >=1.1.0.0, ronn-opt-env-conf,- text >=1.2.5.0+ ronn-test if impl(ghc >=9.8) ghc-options:
src/Ronn/OptEnvConf.hs view
@@ -1,3 +1,5 @@+{-# OPTIONS_GHC -Wno-orphans #-}+ -- | -- -- Module : Ronn.OptEnvConf@@ -7,8 +9,19 @@ -- Stability : experimental -- Portability : POSIX module Ronn.OptEnvConf- ( module X+ ( optSynopsis+ , optDefinitions+ , envDefinitions ) where -import Ronn.OptEnvConf.Env as X-import Ronn.OptEnvConf.Opt as X+import Prelude++import OptEnvConf (Parser)+import Ronn (HasSections (..))+import Ronn.OptEnvConf.Env+import Ronn.OptEnvConf.Opt++instance HasSections Parser where+ getSynopsis = Just . optSynopsis+ getOptDefinitions = Just . optDefinitions+ getEnvDefinitions = Just . envDefinitions
tests/Main.hs view
@@ -1,3 +1,5 @@+{-# OPTIONS_GHC -F -pgmF hspec-discover -Wno-missing-export-lists #-}+ -- | -- -- Module : Main@@ -6,4 +8,3 @@ -- Maintainer : pbrisbin@gmail.com -- Stability : experimental -- Portability : POSIX-{-# OPTIONS_GHC -F -pgmF hspec-discover -Wno-missing-export-lists #-}
tests/Ronn/OptEnvConfSpec.hs view
@@ -12,77 +12,39 @@ import Prelude -import Data.Text (Text, unpack)-import Data.Text.IO qualified as T import OptEnvConf-import Ronn-import Ronn.OptEnvConf-import System.FilePath ((</>))+import Ronn.OptEnvConf ()+import Ronn.Test import Test.Hspec-import Test.Hspec.Golden spec :: Spec spec = do specify "complete example" $- let- p :: Parser (Maybe Bool, FilePath, FilePath)- p =- (,,)- <$> optional- ( setting- [ help "Enable debug"- , long "debug"- , switch True- , env "DEBUG"- , env "VERBOSE"- ]- )- <*> setting- [ help "Output file"- , short 'o'- , long "output"- , reader str- , metavar "FILE"- , option- , env "OUTPUT"- , value "-"- ]- <*> setting- [ help "Input file"- , reader str- , metavar "FILE"- , argument- , env "INPUT"- ]- in- ronnGolden $- Ronn- { name = ManRef "ronn-opt-env-conf" ManSection1- , description = ["example Ronn from opt-env-conf"]- , sections =- [ Section- { name = "SYNOPSIS"- , content = [Groups [Lines [Line $ Code "ronn-opt-env-conf" : optSynopsis p]]]- }- , Section- { name = "OPTIONS"- , content = [Definitions $ optDefinitions p]- }- , Section- { name = "ENVIRONMENT"- , content = [Definitions $ envDefinitions p]- }+ ronnGolden "opt-env-conf" $+ (,,)+ <$> optional+ ( setting+ [ help "Enable debug"+ , long "debug"+ , switch True+ , env "DEBUG"+ , env "VERBOSE" ]- }--ronnGolden :: Ronn -> Golden Text-ronnGolden ronn =- Golden- { output = ronnToText ronn- , encodePretty = unpack- , writeToFile = T.writeFile- , readFromFile = T.readFile- , goldenFile = "../doc" </> ronnFilePath ronn- , actualFile = Nothing- , failFirstTime = False- }+ )+ <*> setting+ [ help "Output file"+ , short 'o'+ , long "output"+ , reader (str @String)+ , metavar "FILE"+ , option+ , env "OUTPUT"+ , value "-"+ ]+ <*> setting+ [ help "Input file"+ , reader (str @String)+ , metavar "FILE"+ , argument+ , env "INPUT"+ ]