packages feed

optparse-applicative 0.8.1 → 0.9.0

raw patch · 6 files changed

+31/−24 lines, 6 filesdep +transformers-compatdep ~basedep ~transformers

Dependencies added: transformers-compat

Dependency ranges changed: base, transformers

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## Version 0.9.0 (23 May 2014)++- The option returned by `abortOption` is now visible by default.+ ## Version 0.8.1 (5 May 2014)  - Fixed bugs
Options/Applicative/Builder.hs view
@@ -285,8 +285,7 @@   [ reader (const (ReadM (Left err)))   , noArgError err   , value id-  , metavar ""-  , hidden ]+  , metavar "" ]  -- | An option that always fails and displays a message. infoOption :: String -> Mod OptionFields (a -> a) -> Parser (a -> a)
Options/Applicative/Extra.hs view
@@ -27,6 +27,7 @@ import Options.Applicative.Builder.Internal import Options.Applicative.Common import Options.Applicative.Help+ import Options.Applicative.Internal import Options.Applicative.Types @@ -35,7 +36,8 @@ helper = abortOption ShowHelpText $ mconcat   [ long "help"   , short 'h'-  , help "Show this help text" ]+  , help "Show this help text"+  , hidden ]  hsubparser :: Mod CommandFields a -> Parser a hsubparser m = mkParser d g rdr@@ -117,8 +119,9 @@   in (render_help h, exit_code)   where     exit_code = case msg of-      ErrorMsg _ -> ExitFailure (infoFailureCode pinfo)-      _          -> ExitSuccess+      ErrorMsg _   -> ExitFailure (infoFailureCode pinfo)+      UnknownError -> ExitFailure (infoFailureCode pinfo)+      _            -> ExitSuccess      with_context :: Context                  -> ParserInfo a@@ -142,6 +145,7 @@       ShowHelpText -> mempty       ErrorMsg m   -> stringChunk m       InfoMsg  m   -> stringChunk m+      UnknownError -> mempty      base_help :: ParserInfo a -> ParserHelp     base_help i
Options/Applicative/Internal.hs view
@@ -29,8 +29,8 @@ import Control.Applicative (Applicative(..), Alternative(..), (<$>)) import Control.Monad (MonadPlus(..), liftM, ap, guard) import Control.Monad.Trans.Class (MonadTrans, lift)-import Control.Monad.Trans.Error-  (runErrorT, ErrorT(..), Error(..), throwError, catchError)+import Control.Monad.Trans.Except+  (runExceptT, ExceptT(..), throwE, catchE) import Control.Monad.Trans.Reader   (runReader, runReaderT, Reader, ReaderT, ask) import Control.Monad.Trans.Writer (runWriterT, WriterT, tell)@@ -50,7 +50,7 @@   errorP :: ParseError -> m a   exitP :: Parser b -> Maybe a -> m a -newtype P a = P (ErrorT ParseError (WriterT Context (Reader ParserPrefs)) a)+newtype P a = P (ExceptT ParseError (WriterT Context (Reader ParserPrefs)) a)  instance Functor P where   fmap f (P m) = P $ fmap f m@@ -91,9 +91,9 @@   getPrefs = P . lift . lift $ ask    missingArgP e _ = errorP e-  tryP (P p) = P $ lift $ runErrorT p+  tryP (P p) = P $ lift $ runExceptT p   exitP _ = P . hoistMaybe-  errorP = P . throwError+  errorP = P . throwE  hoistMaybe :: MonadPlus m => Maybe a -> m a hoistMaybe = maybe mzero return@@ -102,7 +102,7 @@ hoistEither = either errorP return  runP :: P a -> ParserPrefs -> (Either ParseError a, Context)-runP (P p) = runReader . runWriterT . runErrorT $ p+runP (P p) = runReader . runWriterT . runExceptT $ p  uncons :: [a] -> Maybe (a, [a]) uncons [] = Nothing@@ -115,9 +115,6 @@   = ComplParseError String   | ComplExit -instance Error ComplError where-  strMsg = ComplParseError- data ComplResult a   = ComplParser SomeParser   | ComplOption Completer@@ -138,7 +135,7 @@     ComplOption c -> ComplOption c  newtype Completion a =-  Completion (ErrorT ParseError (ReaderT ParserPrefs ComplResult) a)+  Completion (ExceptT ParseError (ReaderT ParserPrefs ComplResult) a)  instance Functor Completion where   fmap f (Completion m) = Completion $ fmap f m@@ -165,12 +162,12 @@   getPrefs = Completion $ lift ask    missingArgP _ = Completion . lift . lift . ComplOption-  tryP (Completion p) = Completion $ catchError (Right <$> p) (return . Left)+  tryP (Completion p) = Completion $ catchE (Right <$> p) (return . Left)   exitP p _ = Completion . lift . lift . ComplParser $ SomeParser p-  errorP = Completion . throwError+  errorP = Completion . throwE  runCompletion :: Completion r -> ParserPrefs -> Maybe (Either SomeParser Completer)-runCompletion (Completion c) prefs = case runReaderT (runErrorT c) prefs of+runCompletion (Completion c) prefs = case runReaderT (runExceptT c) prefs of   ComplResult _ -> Nothing   ComplParser p' -> Just $ Left p'   ComplOption compl -> Just $ Right compl
Options/Applicative/Types.hs view
@@ -39,7 +39,6 @@ import Control.Applicative   (Applicative(..), Alternative(..), (<$>), optional) import Control.Monad (ap, liftM, MonadPlus, mzero, mplus)-import Control.Monad.Trans.Error (Error(..)) import Data.Monoid (Monoid(..)) import System.Exit (ExitCode(..)) @@ -50,10 +49,13 @@   = ErrorMsg String   | InfoMsg String   | ShowHelpText+  | UnknownError   deriving Show -instance Error ParseError where-  strMsg = ErrorMsg+instance Monoid ParseError where+  mempty = UnknownError+  mappend UnknownError m = m+  mappend m _ = m  -- | A full description for a runnable 'Parser' for a program. data ParserInfo a = ParserInfo@@ -136,7 +138,7 @@   fail = ReadM . Left . ErrorMsg  instance MonadPlus ReadM where-  mzero = ReadM $ Left (strMsg "")+  mzero = ReadM $ Left UnknownError   mplus m1 m2 = case runReadM m1 of     Left _ -> m2     Right r -> return r
optparse-applicative.cabal view
@@ -1,5 +1,5 @@ name:                optparse-applicative-version:             0.8.1+version:             0.9.0 synopsis:            Utilities and combinators for parsing command line options description:     Here is a simple example of an applicative option parser:@@ -108,7 +108,8 @@                        Options.Applicative.Internal   ghc-options:         -Wall   build-depends:       base == 4.*,-                       transformers >= 0.2 && < 0.4,+                       transformers >= 0.2 && < 0.5,+                       transformers-compat == 0.3.*,                        process >= 1.0 && < 1.3,                        ansi-wl-pprint >= 0.6 && < 0.7 test-suite tests