mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-02-02 06:10:24 +01:00
Better support for pre-existing snapshots
This commit is contained in:
parent
caebdbd30c
commit
fd89710c69
@ -151,6 +151,34 @@ doUpload status uid ident bundleFP = do
|
|||||||
when (slug' /= unSlug slug2) $ error $ "Slug not available: " ++ show slug'
|
when (slug' /= unSlug slug2) $ error $ "Slug not available: " ++ show slug'
|
||||||
return $ SnapSlug slug2
|
return $ SnapSlug slug2
|
||||||
|
|
||||||
|
mexisting <- runDB $ getBy $ UniqueSnapshot slug
|
||||||
|
route <- case mexisting of
|
||||||
|
Just _ -> do
|
||||||
|
say "Snapshot already exists"
|
||||||
|
return $ SnapshotR slug StackageHomeR
|
||||||
|
Nothing -> finishUpload
|
||||||
|
title ident ghcVersion slug now siType siPlan siDocMap
|
||||||
|
uid say
|
||||||
|
render <- getUrlRender
|
||||||
|
return $ render route
|
||||||
|
where
|
||||||
|
say = atomically . writeTVar status
|
||||||
|
|
||||||
|
finishUpload
|
||||||
|
:: Text
|
||||||
|
-> PackageSetIdent
|
||||||
|
-> Text
|
||||||
|
-> SnapSlug
|
||||||
|
-> UTCTime
|
||||||
|
-> SnapshotType
|
||||||
|
-> BuildPlan
|
||||||
|
-> Map Text PackageDocs
|
||||||
|
-> UserId
|
||||||
|
-> (Text -> Handler ())
|
||||||
|
-> Handler (Route App)
|
||||||
|
finishUpload
|
||||||
|
title ident ghcVersion slug now siType siPlan siDocMap
|
||||||
|
uid say = do
|
||||||
say "Creating index tarball"
|
say "Creating index tarball"
|
||||||
withSystemTempDirectory "buildindex.v2" $ \(fpFromString -> dir) -> do
|
withSystemTempDirectory "buildindex.v2" $ \(fpFromString -> dir) -> do
|
||||||
files <- forM (mapToList $ fmap ppVersion $ bpPackages siPlan) $ \(name', version') -> do
|
files <- forM (mapToList $ fmap ppVersion $ bpPackages siPlan) $ \(name', version') -> do
|
||||||
@ -263,6 +291,4 @@ doUpload status uid ident bundleFP = do
|
|||||||
let url = render $ HaddockR slug pieces
|
let url = render $ HaddockR slug pieces
|
||||||
insert_ $ Module did name url
|
insert_ $ Module did name url
|
||||||
|
|
||||||
return $ render $ SnapshotR slug StackageHomeR
|
return $ SnapshotR slug StackageHomeR
|
||||||
where
|
|
||||||
say = atomically . writeTVar status
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user