stackage-server/Handler/StackageIndex.hs
2014-07-30 16:57:52 +03:00

27 lines
920 B
Haskell

module Handler.StackageIndex where
import Import
import Data.BlobStore
getStackageIndexR :: PackageSetIdent -> Handler TypedContent
getStackageIndexR ident = do
msrc <- storeRead $ CabalIndex ident
case msrc of
Nothing -> notFound
Just src -> do
addHeader "content-disposition" "attachment; filename=\"00-index.tar.gz\""
respondSource "application/x-gzip" $ mapOutput (Chunk . toBuilder) src
getStackageBundleR :: PackageSetIdent -> Handler TypedContent
getStackageBundleR ident = do
msrc <- storeRead $ SnapshotBundle ident
case msrc of
Nothing -> notFound
Just src -> do
addHeader "content-disposition" $ mconcat
[ "attachment; filename=\"bundle-"
, toPathPiece ident
, ".tar.gz\""
]
respondSource "application/x-gzip" $ mapOutput (Chunk . toBuilder) src