cabal-cargs 0.9.0 → 0.9.1
raw patch · 3 files changed
+27/−14 lines, 3 filesdep +bytestringdep −strictdep ~Cabaldep ~cabal-lensesdep ~eitherPVP ok
version bump matches the API change (PVP)
Dependencies added: bytestring
Dependencies removed: strict
Dependency ranges changed: Cabal, cabal-lenses, either, lens, tasty
API changes (from Hackage documentation)
Files
- CHANGELOG +5/−0
- cabal-cargs.cabal +8/−8
- lib/CabalCargs/Spec.hs +14/−6
CHANGELOG view
@@ -1,3 +1,8 @@+0.9.1+-----+* Support Cabal 2.2+* Tested with GHC 8.4.2+ 0.9.0 ----- * Support cabal 2.0
cabal-cargs.cabal view
@@ -1,5 +1,5 @@ name: cabal-cargs-version: 0.9.0+version: 0.9.1 cabal-version: >=1.9.2 build-type: Simple license: BSD3@@ -11,7 +11,7 @@ category: Utils, Development author: Daniel Trstenjak tested-with: GHC ==7.6.2 GHC ==7.6.3 GHC ==7.8.3 GHC ==7.10.1- GHC ==8.0.1 GHC ==8.2.1+ GHC ==8.0.1 GHC ==8.2.1 GHC ==8.4.2 extra-source-files: README.md CHANGELOG@@ -47,17 +47,17 @@ build-depends: base >=3 && <5, cmdargs >=0.10.5 && <0.11,- lens >=4.0.1 && <4.16,+ lens >=4.0.1 && <4.17, directory >=1.0 && <1.4,- strict >=0.3.2 && <0.4, transformers >=0.3.0.0 && <0.6,- either >=4.1.1 && <4.5,+ either >=4.1.1 && <4.6, text >=1.1.0.1 && <1.3, system-filepath >=0.4.9 && <0.5, system-fileio >=0.3.12 && <0.4, unordered-containers >=0.2.3.3 && <0.3,- cabal-lenses >=0.6.0 && <0.7,- Cabal >=2.0.0.2 && <2.1+ cabal-lenses >=0.6.0 && <0.8,+ Cabal >=2.2.0.0 && <2.3,+ bytestring >=0.9 && <0.11 cpp-options: -DCABAL hs-source-dirs: lib other-modules:@@ -78,7 +78,7 @@ main-is: Main.hs build-depends: base >=3 && <5,- tasty >=0.9.0.1 && <0.12,+ tasty >=0.9.0.1 && <1.2, tasty-golden >=2.2.0.2 && <2.4, filepath >=1.3.0.1 && <1.5, cabal-cargs -any
lib/CabalCargs/Spec.hs view
@@ -6,13 +6,13 @@ ) where import Distribution.PackageDescription (GenericPackageDescription)-import Distribution.PackageDescription.Parse (parseGenericPackageDescription, ParseResult(..))+import Distribution.PackageDescription.Parsec (parseGenericPackageDescription, runParseResult, ParseResult(..))+import Distribution.Parsec.Common (PWarning) import qualified Distribution.System as Sys import CabalCargs.Args (Args) import qualified CabalCargs.Args as A import qualified CabalCargs.Fields as F import qualified CabalLenses as CL-import qualified System.IO.Strict as Strict import Control.Monad.Trans.Either (EitherT, left, right, runEitherT) import Control.Monad.IO.Class import Control.Lens@@ -23,6 +23,7 @@ import Data.List ((\\)) import qualified Data.List as L import Data.Maybe (isJust)+import qualified Data.ByteString as BS #if __GLASGOW_HASKELL__ < 710 import Control.Applicative ((<$>))@@ -181,10 +182,17 @@ packageDescription :: FilePath -> EitherT Error IO GenericPackageDescription packageDescription file = do- contents <- io $ Strict.readFile file- case parseGenericPackageDescription contents of- ParseFailed error -> left $ show error- ParseOk _ pkgDescrp -> right pkgDescrp+ contents <- io $ BS.readFile file+ let (warnings, result) = runParseResult $ parseGenericPackageDescription contents+ io $ showWarnings warnings+ case result of+ Left (_, errors) -> left $ show errors+ Right pkgDescrp -> right pkgDescrp++ where+ showWarnings :: [PWarning] -> IO ()+ showWarnings [] = return ()+ showWarnings ws = putStrLn $ "cabal-cargs: " ++ (L.intercalate ", " $ map show ws) -- | Find matching sections in the package description for the given source file.