This commit is contained in:
Michael Snoyman 2015-05-13 14:55:30 +03:00
parent d77b87b6c2
commit 4564385c73
3 changed files with 38 additions and 10 deletions

View File

@ -50,11 +50,18 @@ packagePage mversion pname = do
deps' <- getDeps pname'
revdeps' <- getRevDeps pname'
Entity _ package <- getPackage pname' >>= maybe notFound return
let mdocs :: Maybe (SnapName, Text, [Text])
mdocs = Nothing
{-
mdocs <- error "mdocs"
-}
mdocs <-
case mversion of
Just (sname, version) -> do
ms <- getPackageModules sname pname'
return $ Just (sname, toPathPiece version, ms)
Nothing ->
case latests of
li:_ -> do
ms <- getPackageModules (liSnapName li) pname'
return $ Just (liSnapName li, liVersion li, ms)
[] -> return Nothing
let ixInFavourOf = zip [0::Int ..] inFavourOf
displayedVersion = maybe (packageLatest package) (toPathPiece . snd) mversion

View File

@ -14,6 +14,7 @@ module Stackage.Database
, openStackageDatabase
, ModuleListingInfo (..)
, getSnapshotModules
, getPackageModules
, SnapshotPackage (..)
, lookupSnapshotPackage
, getDeprecated
@ -218,10 +219,10 @@ addPackage e =
, packageSynopsis = piSynopsis pi
, packageDescription = renderContent (piDescription pi) (piDescriptionType pi)
, packageChangelog = renderContent (piChangeLog pi) (piChangeLogType pi)
, packageAuthor = "FIXME author"
, packageMaintainer = "FIXME maintainer"
, packageHomepage = "FIXME homepage"
, packageLicenseName = "FIXME license name"
, packageAuthor = piAuthor pi
, packageMaintainer = piMaintainer pi
, packageHomepage = piHomepage pi
, packageLicenseName = piLicenseName pi
}
forM_ (mapToList $ piBasicDeps pi) $ \(uses, range) -> insert_ Dep
{ depUser = pid
@ -390,6 +391,26 @@ getSnapshotModules sid = liftM (map toMLI) $ run $ do
, mliPackageVersion = concat [pkg, "-", version]
}
getPackageModules
:: GetStackageDatabase m
=> SnapName
-> Text
-> m [Text]
getPackageModules sname pname = run $ do
sids <- selectKeysList [SnapshotName ==. sname] []
pids <- selectKeysList [PackageName ==. pname] []
case (,) <$> listToMaybe sids <*> listToMaybe pids of
Nothing -> return []
Just (sid, pid) -> do
spids <- selectKeysList
[ SnapshotPackageSnapshot ==. sid
, SnapshotPackagePackage ==. pid
] []
case spids of
spid:_ -> map (moduleName . entityVal)
<$> selectList [ModulePackage ==. spid] [Asc ModuleName]
[] -> return []
lookupSnapshotPackage
:: GetStackageDatabase m
=> SnapshotId

View File

@ -168,7 +168,7 @@ library
, classy-prelude-conduit
, path-pieces
, persistent-sqlite
, stackage-metadata
, stackage-metadata >= 0.2
, filepath
executable stackage-server