mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-03-03 03:44:35 +01:00
Global configuration instructions #67
This commit is contained in:
parent
9d745c9c42
commit
f0a8848456
@ -104,21 +104,39 @@ getStackageCabalConfigR slug = do
|
|||||||
when (mdownload == Just "true") $
|
when (mdownload == Just "true") $
|
||||||
addHeader "Content-Disposition" "attachment; filename=cabal.config"
|
addHeader "Content-Disposition" "attachment; filename=cabal.config"
|
||||||
|
|
||||||
respondSourceDB typePlain $ stream render sid
|
mglobal <- lookupGetParam "global"
|
||||||
|
let isGlobal = mglobal == Just "true"
|
||||||
|
|
||||||
|
respondSourceDB typePlain $ stream isGlobal render sid
|
||||||
where
|
where
|
||||||
stream render sid =
|
stream isGlobal render sid =
|
||||||
selectSource
|
selectSource
|
||||||
[ PackageStackage ==. sid
|
[ PackageStackage ==. sid
|
||||||
]
|
]
|
||||||
[ Asc PackageName'
|
[ Asc PackageName'
|
||||||
, Asc PackageVersion
|
, Asc PackageVersion
|
||||||
] $= (do
|
] $= (if isGlobal then conduitGlobal else conduitLocal) render
|
||||||
header render
|
|
||||||
goFirst
|
|
||||||
mapC (Chunk . showPackage)
|
|
||||||
yield $ Chunk $ toBuilder '\n')
|
|
||||||
|
|
||||||
header render = yield $ Chunk $
|
conduitGlobal render = do
|
||||||
|
headerGlobal render
|
||||||
|
mapC (Chunk . showPackageGlobal)
|
||||||
|
|
||||||
|
conduitLocal render = do
|
||||||
|
headerLocal render
|
||||||
|
goFirst
|
||||||
|
mapC (Chunk . showPackageLocal)
|
||||||
|
yield $ Chunk $ toBuilder '\n'
|
||||||
|
|
||||||
|
headerGlobal render = yield $ Chunk $
|
||||||
|
toBuilder (asText "-- Stackage snapshot from: ") ++
|
||||||
|
toBuilder (render $ SnapshotR slug StackageHomeR) ++
|
||||||
|
toBuilder (asText "\n-- Please place these contents in your global cabal config file.\n-- To only use tested packages, uncomment the following line\n-- and comment out other remote-repo lines:\n-- remote-repo: stackage-") ++
|
||||||
|
toBuilder (toPathPiece slug) ++
|
||||||
|
toBuilder ':' ++
|
||||||
|
toBuilder (render $ SnapshotR slug StackageHomeR) ++
|
||||||
|
toBuilder '\n'
|
||||||
|
|
||||||
|
headerLocal render = yield $ Chunk $
|
||||||
toBuilder (asText "-- Stackage snapshot from: ") ++
|
toBuilder (asText "-- Stackage snapshot from: ") ++
|
||||||
toBuilder (render $ SnapshotR slug StackageHomeR) ++
|
toBuilder (render $ SnapshotR slug StackageHomeR) ++
|
||||||
toBuilder (asText "\n-- Please place this file next to your .cabal file as cabal.config\n-- To only use tested packages, uncomment the following line:\n-- remote-repo: stackage-") ++
|
toBuilder (asText "\n-- Please place this file next to your .cabal file as cabal.config\n-- To only use tested packages, uncomment the following line:\n-- remote-repo: stackage-") ++
|
||||||
@ -126,6 +144,18 @@ getStackageCabalConfigR slug = do
|
|||||||
toBuilder ':' ++
|
toBuilder ':' ++
|
||||||
toBuilder (render $ SnapshotR slug StackageHomeR) ++
|
toBuilder (render $ SnapshotR slug StackageHomeR) ++
|
||||||
toBuilder '\n'
|
toBuilder '\n'
|
||||||
|
|
||||||
|
constraint p
|
||||||
|
| packageCore p = toBuilder $ asText " installed"
|
||||||
|
| otherwise = toBuilder (asText " ==") ++
|
||||||
|
toBuilder (toPathPiece $ packageVersion p)
|
||||||
|
|
||||||
|
showPackageGlobal (Entity _ p) =
|
||||||
|
toBuilder (asText "constraint: ") ++
|
||||||
|
toBuilder (toPathPiece $ packageName' p) ++
|
||||||
|
constraint p ++
|
||||||
|
toBuilder '\n'
|
||||||
|
|
||||||
goFirst = do
|
goFirst = do
|
||||||
mx <- await
|
mx <- await
|
||||||
forM_ mx $ \(Entity _ p) -> yield $ Chunk $
|
forM_ mx $ \(Entity _ p) -> yield $ Chunk $
|
||||||
@ -133,12 +163,7 @@ getStackageCabalConfigR slug = do
|
|||||||
toBuilder (toPathPiece $ packageName' p) ++
|
toBuilder (toPathPiece $ packageName' p) ++
|
||||||
constraint p
|
constraint p
|
||||||
|
|
||||||
constraint p
|
showPackageLocal (Entity _ p) =
|
||||||
| packageCore p = toBuilder $ asText " installed"
|
|
||||||
| otherwise = toBuilder (asText " ==") ++
|
|
||||||
toBuilder (toPathPiece $ packageVersion p)
|
|
||||||
|
|
||||||
showPackage (Entity _ p) =
|
|
||||||
toBuilder (asText ",\n ") ++
|
toBuilder (asText ",\n ") ++
|
||||||
toBuilder (toPathPiece $ packageName' p) ++
|
toBuilder (toPathPiece $ packageName' p) ++
|
||||||
constraint p
|
constraint p
|
||||||
|
|||||||
@ -38,6 +38,12 @@ $newline never
|
|||||||
<a href="https://github.com/fpco/stackage/wiki/Stackage-Server-FAQ#homebrew-users">
|
<a href="https://github.com/fpco/stackage/wiki/Stackage-Server-FAQ#homebrew-users">
|
||||||
this page about potential issues.
|
this page about potential issues.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>Note: #
|
||||||
|
For a global installation, please use #
|
||||||
|
<a href=@{SnapshotR slug StackageCabalConfigR}?global=true>
|
||||||
|
the global configuration instructions
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
Packages
|
Packages
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user