packages feed

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 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`++[![Hackage](https://img.shields.io/hackage/v/ronn-opt-env-conf.svg?style=flat)](https://hackage.haskell.org/package/ronn-opt-env-conf)+[![Stackage Nightly](http://stackage.org/package/ronn-opt-env-conf/badge/nightly)](http://stackage.org/nightly/package/ronn-opt-env-conf)+[![Stackage LTS](http://stackage.org/package/ronn-opt-env-conf/badge/lts)](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"+          ]