envparse 0.2.0 → 0.2.1
raw patch · 4 files changed
+22/−12 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.markdown +6/−1
- envparse.cabal +3/−3
- src/Env.hs +1/−1
- src/Env/Help.hs +12/−7
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+0.2.1+=====++ * Cosmetic changes in the help output.+ 0.2.0 ===== @@ -5,7 +10,7 @@ * Added `parseOr`, a slightly generalized version of `parse`. - * Renamed `parseTest` to `parsePure`+ * Renamed `parseTest` to `parsePure`. 0.1.0 =====
envparse.cabal view
@@ -1,5 +1,5 @@ name: envparse-version: 0.2.0+version: 0.2.1 synopsis: Parse environment variables description: Here's a simple example of a program that uses @envparse@'s parser:@@ -42,7 +42,7 @@   Parsing errors:  -   NAME is missing+   NAME is unset @ homepage: https://supki.github.io/envparse license: BSD2@@ -65,7 +65,7 @@ source-repository this type: git location: https://github.com/supki/envparse- tag: 0.2.0+ tag: 0.2.1 library default-language:
src/Env.hs view
@@ -39,7 +39,7 @@ -- -- Parsing errors: ----- NAME is missing+-- NAME is unset -- @ module Env ( parse
src/Env/Help.hs view
@@ -3,10 +3,11 @@ ( helpDoc ) where -import Data.List (intercalate)+import qualified Data.List as List import qualified Data.Map as Map import Data.Maybe (catMaybes) import Data.Monoid ((<>))+import Data.Ord (comparing) import Env.Free import Env.Parse@@ -14,12 +15,12 @@ helpDoc :: Info a -> Parser b -> [Error] -> String helpDoc Info { infoHeader, infoDesc, infoFooter } p fs =- intercalate "\n\n" . catMaybes $+ List.intercalate "\n\n" . catMaybes $ [ infoHeader- , fmap (intercalate "\n" . splitWords 50) infoDesc+ , fmap (List.intercalate "\n" . splitWords 50) infoDesc , Just "Available environment variables:"- , Just (intercalate "\n" (helpParserDoc p))- , fmap (intercalate "\n" . splitWords 50) infoFooter+ , Just (List.intercalate "\n" (helpParserDoc p))+ , fmap (List.intercalate "\n" . splitWords 50) infoFooter ] ++ map Just (helpFailuresDoc fs) helpParserDoc :: Parser a -> [String]@@ -40,11 +41,15 @@ helpFailuresDoc :: [Error] -> [String] helpFailuresDoc [] = []-helpFailuresDoc fs = ["Parsing errors:", intercalate "\n" (map helpFailureDoc fs)]+helpFailuresDoc fs = ["Parsing errors:", List.intercalate "\n" (map helpFailureDoc (List.sortBy (comparing varName) fs))] helpFailureDoc :: Error -> String helpFailureDoc (ParseError n e) = " " ++ n ++ " cannot be parsed: " ++ e-helpFailureDoc (ENoExistError n) = " " ++ n ++ " is missing"+helpFailureDoc (ENoExistError n) = " " ++ n ++ " is unset"++varName :: Error -> String+varName (ParseError n _) = n+varName (ENoExistError n) = n splitWords :: Int -> String -> [String] splitWords n = go [] 0 . words