mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-01-23 09:21:56 +01:00
cabal.config link
This commit is contained in:
parent
25fa854a84
commit
11f0d37904
@ -2,6 +2,7 @@ module Handler.StackageHome where
|
|||||||
|
|
||||||
import Data.BlobStore (storeExists)
|
import Data.BlobStore (storeExists)
|
||||||
import Import
|
import Import
|
||||||
|
import Data.Time (FormatTime)
|
||||||
|
|
||||||
getStackageHomeR :: PackageSetIdent -> Handler Html
|
getStackageHomeR :: PackageSetIdent -> Handler Html
|
||||||
getStackageHomeR ident = do
|
getStackageHomeR ident = do
|
||||||
@ -49,4 +50,33 @@ getStackageMetadataR ident = do
|
|||||||
, "\n"
|
, "\n"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
getStackageCabalConfigR :: PackageSetIdent -> Handler TypedContent
|
||||||
|
getStackageCabalConfigR ident = do
|
||||||
|
Entity sid _ <- runDB $ getBy404 $ UniqueStackage ident
|
||||||
|
respondSourceDB typePlain $ stream sid
|
||||||
|
where
|
||||||
|
stream sid =
|
||||||
|
selectSource
|
||||||
|
[ PackageStackage ==. sid
|
||||||
|
, PackageOverwrite ==. False
|
||||||
|
]
|
||||||
|
[ Asc PackageName'
|
||||||
|
, Asc PackageVersion
|
||||||
|
] $= (goFirst >> mapC (Chunk . showPackage))
|
||||||
|
|
||||||
|
goFirst = do
|
||||||
|
mx <- await
|
||||||
|
forM_ mx $ \(Entity _ (Package _ name version _)) -> yield $ Chunk $
|
||||||
|
toBuilder (asText "constraints: ") ++
|
||||||
|
toBuilder (toPathPiece name) ++
|
||||||
|
toBuilder (asText " ==") ++
|
||||||
|
toBuilder (toPathPiece version)
|
||||||
|
|
||||||
|
showPackage (Entity _ (Package _ name version _)) =
|
||||||
|
toBuilder (asText ",\n ") ++
|
||||||
|
toBuilder (toPathPiece name) ++
|
||||||
|
toBuilder (asText " ==") ++
|
||||||
|
toBuilder (toPathPiece version)
|
||||||
|
|
||||||
|
yearMonthDay :: FormatTime t => t -> String
|
||||||
yearMonthDay = formatTime defaultTimeLocale "%Y-%m-%d"
|
yearMonthDay = formatTime defaultTimeLocale "%Y-%m-%d"
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
/upload UploadStackageR GET PUT
|
/upload UploadStackageR GET PUT
|
||||||
/stackage/#PackageSetIdent StackageHomeR GET
|
/stackage/#PackageSetIdent StackageHomeR GET
|
||||||
/stackage/#PackageSetIdent/metadata StackageMetadataR GET
|
/stackage/#PackageSetIdent/metadata StackageMetadataR GET
|
||||||
|
/stackage/#PackageSetIdent/cabal.config StackageCabalConfigR GET
|
||||||
/stackage/#PackageSetIdent/00-index.tar.gz StackageIndexR GET
|
/stackage/#PackageSetIdent/00-index.tar.gz StackageIndexR GET
|
||||||
/stackage/#PackageSetIdent/bundle StackageBundleR GET
|
/stackage/#PackageSetIdent/bundle StackageBundleR GET
|
||||||
/stackage/#PackageSetIdent/package/#PackageNameVersion StackageSdistR GET
|
/stackage/#PackageSetIdent/package/#PackageNameVersion StackageSdistR GET
|
||||||
|
|||||||
@ -13,6 +13,10 @@ $newline never
|
|||||||
<span>
|
<span>
|
||||||
<a href=@{StackageBundleR ident} title="This is useful for making modifications to an existing snapshot">
|
<a href=@{StackageBundleR ident} title="This is useful for making modifications to an existing snapshot">
|
||||||
\Bundle
|
\Bundle
|
||||||
|
<span .separator>
|
||||||
|
<span>
|
||||||
|
<a href=@{StackageCabalConfigR ident} title="If you want to stick with upstream Hackage but get a stable package set">
|
||||||
|
\cabal.config
|
||||||
<p>
|
<p>
|
||||||
<pre>
|
<pre>
|
||||||
remote-repo: stackage:@{StackageHomeR ident}
|
remote-repo: stackage:@{StackageHomeR ident}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user