stackage-server/Handler/StackageSdist.hs
Michael Snoyman b3a5c53a0b Some fixes
2014-04-13 09:16:05 +03:00

25 lines
815 B
Haskell

module Handler.StackageSdist where
import Import
import Data.BlobStore
import Data.Hackage
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 -> sourceHackageSdist 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