mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-02-01 22:00:26 +01:00
Some fixes
This commit is contained in:
parent
4f122f6282
commit
b3a5c53a0b
@ -2,6 +2,7 @@ module Data.Hackage
|
|||||||
( loadCabalFiles
|
( loadCabalFiles
|
||||||
, sourceHackageSdist
|
, sourceHackageSdist
|
||||||
, createView
|
, createView
|
||||||
|
, sourceHackageViewSdist
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import ClassyPrelude.Yesod hiding (get)
|
import ClassyPrelude.Yesod hiding (get)
|
||||||
@ -153,6 +154,21 @@ sourceHackageSdist name version = do
|
|||||||
then storeRead key
|
then storeRead key
|
||||||
else return Nothing
|
else return Nothing
|
||||||
|
|
||||||
|
sourceHackageViewSdist :: ( MonadIO m
|
||||||
|
, MonadThrow m
|
||||||
|
, MonadBaseControl IO m
|
||||||
|
, MonadResource m
|
||||||
|
, MonadReader env m
|
||||||
|
, HasHttpManager env
|
||||||
|
, HasHackageRoot env
|
||||||
|
, HasBlobStore env StoreKey
|
||||||
|
, MonadLogger m
|
||||||
|
, MonadActive m
|
||||||
|
)
|
||||||
|
=> HackageView
|
||||||
|
-> PackageName
|
||||||
|
-> Version
|
||||||
|
-> m (Maybe (Source m ByteString))
|
||||||
sourceHackageViewSdist viewName name version = do
|
sourceHackageViewSdist viewName name version = do
|
||||||
let key = HackageViewSdist viewName name version
|
let key = HackageViewSdist viewName name version
|
||||||
msrc1 <- storeRead key
|
msrc1 <- storeRead key
|
||||||
@ -164,13 +180,13 @@ sourceHackageViewSdist viewName name version = do
|
|||||||
Nothing -> return Nothing
|
Nothing -> return Nothing
|
||||||
Just cabalSrc -> do
|
Just cabalSrc -> do
|
||||||
cabalLBS <- cabalSrc $$ sinkLazy
|
cabalLBS <- cabalSrc $$ sinkLazy
|
||||||
msrc <- storeRead $ HackageSdist name version
|
msrc <- sourceHackageSdist name version
|
||||||
case msrc of
|
case msrc of
|
||||||
Nothing -> return Nothing
|
Nothing -> return Nothing
|
||||||
Just src -> do
|
Just src -> do
|
||||||
lbs <- fromChunks <$> lazyConsume src
|
lbs <- fromChunks <$> lazyConsume (src $= ungzip)
|
||||||
let lbs' = Tar.write $ replaceCabal cabalLBS $ Tar.read lbs
|
let lbs' = Tar.write $ replaceCabal cabalLBS $ Tar.read lbs
|
||||||
sourceLazy lbs' $$ storeWrite key
|
sourceLazy lbs' $$ gzip =$ storeWrite key
|
||||||
storeRead key
|
storeRead key
|
||||||
where
|
where
|
||||||
cabalName = unpack $ concat
|
cabalName = unpack $ concat
|
||||||
|
|||||||
@ -2,6 +2,7 @@ module Handler.StackageSdist where
|
|||||||
|
|
||||||
import Import
|
import Import
|
||||||
import Data.BlobStore
|
import Data.BlobStore
|
||||||
|
import Data.Hackage
|
||||||
|
|
||||||
getStackageSdistR :: PackageSetIdent -> PackageNameVersion -> Handler TypedContent
|
getStackageSdistR :: PackageSetIdent -> PackageNameVersion -> Handler TypedContent
|
||||||
getStackageSdistR ident (PackageNameVersion name version) = do
|
getStackageSdistR ident (PackageNameVersion name version) = do
|
||||||
@ -9,7 +10,7 @@ getStackageSdistR ident (PackageNameVersion name version) = do
|
|||||||
msrc <-
|
msrc <-
|
||||||
case msrc1 of
|
case msrc1 of
|
||||||
Just src -> return $ Just src
|
Just src -> return $ Just src
|
||||||
Nothing -> storeRead $ HackageSdist name version
|
Nothing -> sourceHackageSdist name version
|
||||||
case msrc of
|
case msrc of
|
||||||
Nothing -> notFound
|
Nothing -> notFound
|
||||||
Just src -> do
|
Just src -> do
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user