@@ -10,7 +10,7 @@ import Data.Text.Encoding as T
1010import Distribution.Nixpkgs.Hashes as NH
1111import Distribution.Package
1212import Distribution.PackageDescription
13−import Distribution.PackageDescription.Parse
13+import Distribution.PackageDescription.Parsec
1414import Distribution.Text ( display )
1515import Git
1616import Git.Libgit2 as Libgit2
@@ -46,9 +46,9 @@ readPackageByHash repoDir sha1Hash = do
4646 BlobString bs -> return bs
4747 BlobStringLazy bsl -> return $ BSL.toStrict bsl
4848 _ -> fail $ "Git SHA1 " ++ show sha1Hash ++ ": expected single Blob"
49− cabal <- case parseGenericPackageDescription (T.unpack $ T.decodeUtf8 buf) of
50− ParseOk _ a -> return a
51− ParseFailed err -> fail ("Git SHA1 " ++ show sha1Hash ++ ": " ++ show err)
49+ cabal <- let (_, res) = runParseResult (parseGenericPackageDescription buf)
50+ in case res of Right a -> return a
51+ Left (_, err) -> fail ("Git SHA1 " ++ show sha1Hash ++ ": " ++ show err)
5252 let
5353 hash = printSHA256 (digest (digestByName "sha256") buf)
5454 pkg = setCabalFileHash hash cabal
@@ -58,9 +58,9 @@ readPackageByName :: FilePath -> PackageIdentifier -> IO (GenericPackageDescript
5858readPackageByName repoDir (PackageIdentifier name version) = do
5959 let cabalFile = repoDir </> unPackageName name </> display version </> unPackageName name <.> "cabal"
6060 buf <- BS.readFile cabalFile
61− cabal <- case parseGenericPackageDescription (T.unpack $ T.decodeUtf8 buf) of
62− ParseOk _ a -> return a
63− ParseFailed err -> fail (cabalFile ++ ": " ++ show err)
61+ cabal <- let (_, res) = runParseResult (parseGenericPackageDescription buf)
62+ in case res of Right a -> return a
63+ Left (_, err) -> fail (cabalFile ++ ": " ++ show err)
6464 let
6565 hash = NH.printSHA256 (SSL.digest (SSL.digestByName "sha256") buf)
6666 pkg = setCabalFileHash hash cabal