[commit: Cabal] : Tidy up the preferred-versions file parser (f88c61e)
Ian Lynagh
igloo at earth.li
Fri Jun 24 02:00:09 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch :
http://hackage.haskell.org/trac/ghc/changeset/f88c61e5695a0024a751a37fa0052e606580b2be
>---------------------------------------------------------------
commit f88c61e5695a0024a751a37fa0052e606580b2be
Author: Duncan Coutts <duncan at haskell.org>
Date: Fri Oct 10 07:01:05 2008 +0000
Tidy up the preferred-versions file parser
>---------------------------------------------------------------
cabal-install/Distribution/Client/IndexUtils.hs | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/cabal-install/Distribution/Client/IndexUtils.hs b/cabal-install/Distribution/Client/IndexUtils.hs
index 4d7a75c..ce75820 100644
--- a/cabal-install/Distribution/Client/IndexUtils.hs
+++ b/cabal-install/Distribution/Client/IndexUtils.hs
@@ -45,6 +45,7 @@ import Distribution.Verbosity (Verbosity)
import Distribution.Simple.Utils (die, warn, info, intercalate, fromUTF8)
import Data.Maybe (catMaybes, fromMaybe)
+import Data.List (isPrefixOf)
import Data.Monoid (Monoid(..))
import qualified Data.Map as Map
import Control.Monad (MonadPlus(mplus))
@@ -113,7 +114,7 @@ readRepoIndex verbosity repo = handleNotFound $ do
extractPrefs :: Tar.Entry -> Maybe [Dependency]
extractPrefs entry
| takeFileName (Tar.fileName entry) == "preferred-versions"
- = Just . catMaybes . map simpleParse . lines
+ = Just . parsePreferredVersions
. BS.Char8.unpack . Tar.fileContent $ entry
| otherwise = Nothing
@@ -129,6 +130,12 @@ readRepoIndex verbosity repo = handleNotFound $ do
return mempty
else ioError e
+parsePreferredVersions :: String -> [Dependency]
+parsePreferredVersions = catMaybes
+ . map simpleParse
+ . filter (not . isPrefixOf "--")
+ . lines
+
-- | Read a compressed \"00-index.tar.gz\" file into a 'PackageIndex'.
--
-- This is supposed to be an \"all in one\" way to easily get at the info in
More information about the Cvs-libraries
mailing list