From 45bac1758245f63dac45b0bcf1cecb08a3c14830 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Wed, 16 Apr 2014 15:52:28 +0300 Subject: [PATCH] Update Cabal version, be more resilient about generating Cabal files --- Data/Hackage.hs | 9 ++++++++- stackage-server.cabal | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Data/Hackage.hs b/Data/Hackage.hs index a2b9b87..34886af 100644 --- a/Data/Hackage.hs +++ b/Data/Hackage.hs @@ -266,12 +266,19 @@ createView viewName modifyCabal src sink = withSystemTempDirectory "createview" case msrc of Nothing -> return mempty Just src -> do + -- FIXME only create a new file if the old one doesn't exist? orig <- src $$ sinkLazy new <- case parsePackageDescription $ unpack $ decodeUtf8 orig of ParseOk _ gpd -> do gpd' <- modifyCabal name version time gpd - return $ encodeUtf8 $ pack $ showGenericPackageDescription gpd' + let str = showGenericPackageDescription gpd' + -- sanity check + case parsePackageDescription str of + ParseOk _ _ -> return $ encodeUtf8 $ pack str + x -> do + $logError $ "Created cabal file that could not be parsed: " ++ tshow (x, str) + return orig _ -> return orig sourceLazy new $$ storeWrite (HackageViewCabal viewName name version) let fp = fpFromString dir relfp diff --git a/stackage-server.cabal b/stackage-server.cabal index dd929fe..e900d15 100644 --- a/stackage-server.cabal +++ b/stackage-server.cabal @@ -111,7 +111,8 @@ library , esqueleto , xml-conduit , html-conduit - , Cabal + -- Avoid https://github.com/haskell/cabal/issues/1202 + , Cabal >= 1.18 , lifted-base , mono-traversable