Don't recreate view cabal files

This commit is contained in:
Michael Snoyman 2014-04-16 17:38:48 +03:00
parent 45bac17582
commit 1e8dd991bc

View File

@ -262,11 +262,15 @@ createView viewName modifyCabal src sink = withSystemTempDirectory "createview"
, toPathPiece version , toPathPiece version
, ".cabal" , ".cabal"
]) ])
let key = HackageViewCabal viewName name version
exists <- storeExists key
if exists
then return mempty
else do
msrc <- storeRead $ HackageCabal name version msrc <- storeRead $ HackageCabal name version
case msrc of case msrc of
Nothing -> return mempty Nothing -> return mempty
Just src -> do Just src -> do
-- FIXME only create a new file if the old one doesn't exist?
orig <- src $$ sinkLazy orig <- src $$ sinkLazy
new <- new <-
case parsePackageDescription $ unpack $ decodeUtf8 orig of case parsePackageDescription $ unpack $ decodeUtf8 orig of
@ -280,7 +284,7 @@ createView viewName modifyCabal src sink = withSystemTempDirectory "createview"
$logError $ "Created cabal file that could not be parsed: " ++ tshow (x, str) $logError $ "Created cabal file that could not be parsed: " ++ tshow (x, str)
return orig return orig
_ -> return orig _ -> return orig
sourceLazy new $$ storeWrite (HackageViewCabal viewName name version) sourceLazy new $$ storeWrite key
let fp = fpFromString dir </> relfp let fp = fpFromString dir </> relfp
liftIO $ createTree $ directory fp liftIO $ createTree $ directory fp
writeFile fp new writeFile fp new