More informative cabal.config

This commit is contained in:
Michael Snoyman 2014-12-11 07:42:10 +02:00
parent 522d2228a9
commit 861ca55fc8

View File

@ -57,17 +57,26 @@ getStackageMetadataR slug = do
getStackageCabalConfigR :: SnapSlug -> Handler TypedContent getStackageCabalConfigR :: SnapSlug -> Handler TypedContent
getStackageCabalConfigR slug = do getStackageCabalConfigR slug = do
Entity sid _ <- runDB $ getBy404 $ UniqueSnapshot slug Entity sid _ <- runDB $ getBy404 $ UniqueSnapshot slug
respondSourceDB typePlain $ stream sid render <- getUrlRender
respondSourceDB typePlain $ stream render sid
where where
stream sid = stream render sid =
selectSource selectSource
[ PackageStackage ==. sid [ PackageStackage ==. sid
, PackageOverwrite ==. False , PackageOverwrite ==. False
] ]
[ Asc PackageName' [ Asc PackageName'
, Asc PackageVersion , Asc PackageVersion
] $= (goFirst >> mapC (Chunk . showPackage)) ] $= (header render >> goFirst >> mapC (Chunk . showPackage))
header render = yield $ Chunk $
toBuilder (asText "-- Stackage snapshot from: ") ++
toBuilder (render $ SnapshotR slug StackageHomeR) ++
toBuilder (asText "\n-- Please place this file next to your .cabal file as cabal.config\n-- To only use tested packages, uncomment the following line:\n-- remote-repo: stackage-") ++
toBuilder (toPathPiece slug) ++
toBuilder ':' ++
toBuilder (render $ SnapshotR slug StackageHomeR) ++
toBuilder '\n'
goFirst = do goFirst = do
mx <- await mx <- await
forM_ mx $ \(Entity _ (Package _ name version _ _)) -> yield $ Chunk $ forM_ mx $ \(Entity _ (Package _ name version _ _)) -> yield $ Chunk $