hoogle 5.0.5 → 5.0.6
raw patch · 4 files changed
+22/−12 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGES.txt +3/−0
- hoogle.cabal +1/−1
- src/Action/Generate.hs +17/−10
- src/Input/Cabal.hs +1/−1
CHANGES.txt view
@@ -1,5 +1,8 @@ Changelog for Hoogle +5.0.6+ #196, make --local look for .cabal files as well+ Fix up Frege documentation generation 5.0.5 #193, support multiple --local flags #195, add --home flag to server mode
hoogle.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.18 build-type: Simple name: hoogle-version: 5.0.5+version: 5.0.6 license: BSD3 license-file: LICENSE category: Development
src/Action/Generate.hs view
@@ -5,6 +5,7 @@ import Data.List.Extra import System.FilePath import System.Directory.Extra+import System.IO.Extra import Data.Tuple.Extra import Control.Exception.Extra import Data.IORef@@ -13,7 +14,6 @@ import qualified Data.Map as Map import qualified Data.Text as T import Control.Monad.Extra-import Control.Applicative import Data.Monoid import System.Console.CmdArgs.Verbosity import Prelude@@ -34,7 +34,6 @@ import General.Timing import General.Str import System.Mem-import System.IO import GHC.Stats import Action.CmdLine import General.Conduit@@ -126,17 +125,25 @@ return (cbl, want, source) -readHaskellDirs :: Timing -> [FilePath] -> IO (Map.Map String Package, Set.Set String, Source IO (String, URL, LStr))-readHaskellDirs timing dirs = do- packages <- map (takeBaseName &&& id) . filter ((==) ".txt" . takeExtension) <$> concatMapM listFilesRecursive dirs+readHaskellDirs :: Timing -> Settings -> [FilePath] -> IO (Map.Map String Package, Set.Set String, Source IO (String, URL, LStr))+readHaskellDirs timing settings dirs = do+ files <- concatMapM listFilesRecursive dirs+ let packages = map (takeBaseName &&& id) $ filter ((==) ".txt" . takeExtension) files+ cabals <- mapM parseCabal $ filter ((==) ".cabal" . takeExtension) files let source = forM_ packages $ \(name, file) -> do src <- liftIO $ strReadFile file dir <- liftIO $ canonicalizePath $ takeDirectory file let url = "file://" ++ ['/' | not $ "/" `isPrefixOf` dir] ++ replace "\\" "/" dir ++ "/" yield (name, url, lstrFromChunks [src])- return (Map.fromList $ map ((,mempty{packageTags=[(T.pack "set",T.pack "all")]}) . fst) packages+ return (Map.union+ (Map.fromList cabals)+ (Map.fromList $ map ((,mempty{packageTags=[(T.pack "set",T.pack "all")]}) . fst) packages) ,Set.fromList $ map fst packages, source)-+ where+ parseCabal fp = do+ src <- readFileUTF8' fp+ let pkg = readCabal settings src+ return (takeBaseName fp, pkg) readFregeOnline :: Timing -> Download -> IO (Map.Map String Package, Set.Set String, Source IO (String, URL, LStr)) readFregeOnline timing download = do@@ -175,9 +182,9 @@ (cbl, want, source) <- case language of Haskell | [""] <- local_ -> readHaskellGhcpkg timing settings | [] <- local_ -> readHaskellOnline timing settings download- | otherwise -> readHaskellDirs timing local_- Frege | null local_ -> errorIO "No support for local Frege databases"- | otherwise -> readFregeOnline timing download+ | otherwise -> readHaskellDirs timing settings local_+ Frege | [] <- local_ -> readFregeOnline timing download+ | otherwise -> errorIO "No support for local Frege databases" let (cblErrs, popularity) = packagePopularity cbl want <- return $ if include /= [] then Set.fromList include else want
src/Input/Cabal.hs view
@@ -4,7 +4,7 @@ module Input.Cabal( Package(..), parseCabalTarball, readGhcPkg,- packagePopularity+ packagePopularity, readCabal ) where import Input.Settings