stackage-server/Handler/StackageSdist.hs
Michael Snoyman 60e1de61a2 Working!
2014-04-10 13:48:01 +03:00

24 lines
801 B
Haskell

module Handler.StackageSdist where
import Import
import Data.BlobStore
getStackageSdistR :: PackageSetIdent -> PackageNameVersion -> Handler TypedContent
getStackageSdistR ident (PackageNameVersion name version) = do
msrc1 <- storeRead (CustomSdist ident name version)
msrc <-
case msrc1 of
Just src -> return $ Just src
Nothing -> storeRead $ HackageSdist name version
case msrc of
Nothing -> notFound
Just src -> do
addHeader "content-disposition" $ concat
[ "attachment; filename=\""
, toPathPiece name
, "-"
, toPathPiece version
, ".tar.gz"
]
respondSource "application/x-gzip" $ mapOutput (Chunk . toBuilder) src