From 4564385c73d7c5315a65cf36b150732c662a15a1 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Wed, 13 May 2015 14:55:30 +0300 Subject: [PATCH] Docs --- Handler/Package.hs | 17 ++++++++++++----- Stackage/Database.hs | 29 +++++++++++++++++++++++++---- stackage-server.cabal | 2 +- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/Handler/Package.hs b/Handler/Package.hs index ddb6a94..3aa322c 100644 --- a/Handler/Package.hs +++ b/Handler/Package.hs @@ -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 diff --git a/Stackage/Database.hs b/Stackage/Database.hs index 2faf8e8..4f664d9 100644 --- a/Stackage/Database.hs +++ b/Stackage/Database.hs @@ -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 diff --git a/stackage-server.cabal b/stackage-server.cabal index 7f07848..31cc2cf 100644 --- a/stackage-server.cabal +++ b/stackage-server.cabal @@ -168,7 +168,7 @@ library , classy-prelude-conduit , path-pieces , persistent-sqlite - , stackage-metadata + , stackage-metadata >= 0.2 , filepath executable stackage-server