@@ -10,7 +10,7 @@ import Data.Text.Encoding as T
10import Distribution.Nixpkgs.Hashes as NH
10import Distribution.Nixpkgs.Hashes as NH
11import Distribution.Package
11import Distribution.Package
12import Distribution.PackageDescription
12import Distribution.PackageDescription
13−import Distribution.PackageDescription.Parse
13+import Distribution.PackageDescription.Parsec
14import Distribution.Text ( display )
14import Distribution.Text ( display )
16import Git.Libgit2 as Libgit2
16import Git.Libgit2 as Libgit2
@@ -46,9 +46,9 @@ readPackageByHash repoDir sha1Hash = do
46 BlobString bs -> return bs
46 BlobString bs -> return bs
47 BlobStringLazy bsl -> return $ BSL.toStrict bsl
47 BlobStringLazy bsl -> return $ BSL.toStrict bsl
48 _ -> fail $ "Git SHA1 " ++ show sha1Hash ++ ": expected single Blob"
48 _ -> fail $ "Git SHA1 " ++ show sha1Hash ++ ": expected single Blob"
49− cabal <- case parseGenericPackageDescription (T.unpack $ T.decodeUtf8 buf) of
49+ cabal <- let (_, res) = runParseResult (parseGenericPackageDescription buf)
50− ParseOk _ a -> return a
50+ in case res of Right a -> return a
51− ParseFailed err -> fail ("Git SHA1 " ++ show sha1Hash ++ ": " ++ show err)
51+ Left (_, err) -> fail ("Git SHA1 " ++ show sha1Hash ++ ": " ++ show err)
53 hash = printSHA256 (digest (digestByName "sha256") buf)
53 hash = printSHA256 (digest (digestByName "sha256") buf)
54 pkg = setCabalFileHash hash cabal
54 pkg = setCabalFileHash hash cabal
@@ -58,9 +58,9 @@ readPackageByName :: FilePath -> PackageIdentifier -> IO (GenericPackageDescript
58readPackageByName repoDir (PackageIdentifier name version) = do
58readPackageByName repoDir (PackageIdentifier name version) = do
59 let cabalFile = repoDir </> unPackageName name </> display version </> unPackageName name <.> "cabal"
59 let cabalFile = repoDir </> unPackageName name </> display version </> unPackageName name <.> "cabal"
60 buf <- BS.readFile cabalFile
60 buf <- BS.readFile cabalFile
61− cabal <- case parseGenericPackageDescription (T.unpack $ T.decodeUtf8 buf) of
61+ cabal <- let (_, res) = runParseResult (parseGenericPackageDescription buf)
62− ParseOk _ a -> return a
62+ in case res of Right a -> return a
63− ParseFailed err -> fail (cabalFile ++ ": " ++ show err)
63+ Left (_, err) -> fail (cabalFile ++ ": " ++ show err)
65 hash = NH.printSHA256 (SSL.digest (SSL.digestByName "sha256") buf)
65 hash = NH.printSHA256 (SSL.digest (SSL.digestByName "sha256") buf)
66 pkg = setCabalFileHash hash cabal
66 pkg = setCabalFileHash hash cabal