From 70891a9799f670cbb6d87094b1b9100421e64e57 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 7 Aug 2017 21:33:43 +0300 Subject: [PATCH] Ignore spid errors --- Stackage/Database.hs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Stackage/Database.hs b/Stackage/Database.hs index 2b4e05b..f00929b 100644 --- a/Stackage/Database.hs +++ b/Stackage/Database.hs @@ -405,14 +405,21 @@ addDocMap name dm = do [sid] <- selectKeysList [SnapshotName ==. name] [] putStrLn $ "Adding doc map: " ++ toPathPiece name forM_ (mapToList dm) $ \(pkg, pd) -> do - -- TODO determine why _spids is sometimes non-null - pid:_pids <- selectKeysList [PackageName ==. pkg] [] - spid:_spids <- selectKeysList [SnapshotPackageSnapshot ==. sid, SnapshotPackagePackage ==. pid] [] - forM_ (mapToList $ pdModules pd) $ \(mname, _paths) -> - insert_ Module - { modulePackage = spid - , moduleName = mname - } + pids <- selectKeysList [PackageName ==. pkg] [] + pid <- + case pids of + [pid] -> return pid + _ -> error $ "addDocMap (1): " ++ show (name, pkg, pids) + spids <- selectKeysList [SnapshotPackageSnapshot ==. sid, SnapshotPackagePackage ==. pid] [] + case spids of + [spid] -> + forM_ (mapToList $ pdModules pd) $ \(mname, _paths) -> + insert_ Module + { modulePackage = spid + , moduleName = mname + } + -- FIXME figure out why this happens for the ghc package with GHC 8.2.1 + _ -> sayErrString $ "addDocMap (2): " ++ show (name, pkg, pid, spids) run :: GetStackageDatabase m => SqlPersistT IO a -> m a run inner = do