packages feed

hackage-db 1.4 → 1.5

raw patch · 2 files changed

+10/−5 lines, 2 filesdep +utf8-stringPVP ok

version bump matches the API change (PVP)

Dependencies added: utf8-string

API changes (from Hackage documentation)

Files

hackage-db.cabal view
@@ -1,5 +1,5 @@ Name:                   hackage-db-Version:                1.4+Version:                1.5 Copyright:              Peter Simons License:                BSD3 License-File:           LICENSE@@ -45,7 +45,7 @@  Library   Build-Depends:        base >= 3 && < 5, tar >= 0.4, Cabal, containers,-                        directory, filepath, bytestring+                        directory, filepath, bytestring, utf8-string   hs-source-dirs:       src   Ghc-Options:          -Wall   Exposed-Modules:      Distribution.Hackage.DB
src/Distribution/Hackage/DB.hs view
@@ -23,7 +23,9 @@  import qualified Codec.Archive.Tar as Tar import Data.ByteString.Lazy.Char8 ( ByteString )-import qualified Data.ByteString.Lazy.Char8 as BS+import qualified Data.ByteString.Lazy.Char8 as BS8+import qualified Data.ByteString.Lazy as BSC+import Data.String.UTF8 ( toString, fromRep ) import Data.Map import Data.Maybe import Data.Version@@ -54,13 +56,16 @@ -- 'Hackage' map that provides fast access to its contents.  readHackage' :: FilePath -> IO Hackage-readHackage' = fmap parseHackage . BS.readFile+readHackage' = fmap parseHackage . BS8.readFile  -- | Parse the contents of Hackage's @00-index.tar@ into a 'Hackage' map.  parseHackage :: ByteString -> Hackage parseHackage = Tar.foldEntries addEntry empty (error . show) . Tar.read   where+    decodeUTF8 :: ByteString -> String+    decodeUTF8 = toString . fromRep . BSC.unpack+     addEntry :: Tar.Entry -> Hackage -> Hackage     addEntry e db = case splitDirectories (Tar.entryPath e) of                         [".",".","@LongLink"] -> db@@ -73,7 +78,7 @@     add name version pkg = insertWith union name (singleton (pVersion version) (pPackage name pkg))      pPackage :: String -> ByteString -> GenericPackageDescription-    pPackage name buf = case parsePackageDescription (BS.unpack buf) of+    pPackage name buf = case parsePackageDescription (decodeUTF8 buf) of                           ParseOk _ a     -> a                           ParseFailed err -> error ("Hackage.DB.parseHackage: cannot parse cabal file " ++ show name ++ ": " ++ show err)