Skip to content
Snippets Groups Projects
Commit 0d208665 authored by Patrick Augusto's avatar Patrick Augusto
Browse files

Parametrizing verbosity for dependencies function

parent 7d91d3ca
No related branches found
No related tags found
No related merge requests found
......@@ -58,6 +58,7 @@ import Distribution.Simple.Setup (Flag(..))
import Distribution.Simple.PackageIndex (InstalledPackageIndex)
import Distribution.Client.Types (SourcePackageDb(..))
import Distribution.Solver.Types.PackageIndex (elemByPackageName)
import Distribution.Verbosity
import Language.Haskell.Extension (Language(..))
......@@ -455,4 +456,4 @@ dependenciesPrompt
-> InitFlags
-> m [Dependency]
dependenciesPrompt pkgIx flags = getDependencies flags $
retrieveDependencies flags [(fromString "Prelude", fromString "Prelude")] pkgIx
retrieveDependencies silent flags [(fromString "Prelude", fromString "Prelude")] pkgIx
......@@ -51,11 +51,12 @@ import Distribution.Client.Init.Defaults
import Distribution.Client.Init.NonInteractive.Heuristics
import Distribution.Client.Init.Utils
import Distribution.Client.Init.FlagExtractors
import Distribution.Simple.Setup (Flag(..))
import Distribution.Simple.Setup (Flag(..), fromFlagOrDefault)
import Distribution.Simple.PackageIndex (InstalledPackageIndex)
import Distribution.Client.Types (SourcePackageDb(..))
import Distribution.Solver.Types.PackageIndex (elemByPackageName)
import Distribution.Utils.Generic (safeHead)
import Distribution.Verbosity
import Language.Haskell.Extension (Language(..), Extension(..))
......@@ -446,7 +447,7 @@ dependenciesHeuristics flags fp pkgIx = getDependencies flags $ do
filteredDeps = filter ((`notElem` mods) . snd) groupedDeps
preludeNub = nubBy (\a b -> snd a == snd b) $ (fromString "Prelude", fromString "Prelude") : filteredDeps
retrieveDependencies flags preludeNub pkgIx
retrieveDependencies (fromFlagOrDefault normal $ initVerbosity flags) flags preludeNub pkgIx
-- | Retrieve the list of extensions
otherExtsHeuristics :: Interactive m => InitFlags -> FilePath -> m [Extension]
......
......@@ -213,8 +213,8 @@ isSourceFile :: Maybe [FilePath] -> SourceFileEntry -> Bool
isSourceFile Nothing sf = isSourceFile (Just ["."]) sf
isSourceFile (Just srcDirs) sf = any (equalFilePath (relativeSourcePath sf)) srcDirs
retrieveDependencies :: Interactive m => InitFlags -> [(ModuleName, ModuleName)] -> InstalledPackageIndex -> m [P.Dependency]
retrieveDependencies flags mods' pkgIx = do
retrieveDependencies :: Interactive m => Verbosity -> InitFlags -> [(ModuleName, ModuleName)] -> InstalledPackageIndex -> m [P.Dependency]
retrieveDependencies v flags mods' pkgIx = do
let mods = mods'
modMap :: M.Map ModuleName [InstalledPackageInfo]
......@@ -224,18 +224,19 @@ retrieveDependencies flags mods' pkgIx = do
modDeps = map (\(mn, ds) -> (mn, ds, M.lookup ds modMap)) mods
-- modDeps = map (id &&& flip M.lookup modMap) mods
message (fromFlagOrDefault silent $ initVerbosity flags) "\nGuessing dependencies..."
nub . catMaybes <$> traverse (chooseDep flags) modDeps
message v "\nGuessing dependencies..."
nub . catMaybes <$> traverse (chooseDep v flags) modDeps
-- Given a module and a list of installed packages providing it,
-- choose a dependency (i.e. package + version range) to use for that
-- module.
chooseDep
:: Interactive m
=> InitFlags
=> Verbosity
-> InitFlags
-> (ModuleName, ModuleName, Maybe [InstalledPackageInfo])
-> m (Maybe P.Dependency)
chooseDep flags (importer, m, mipi) = case mipi of
chooseDep v flags (importer, m, mipi) = case mipi of
-- We found some packages: group them by name.
Just ps@(_:_) ->
case NE.groupBy (\x y -> P.pkgName x == P.pkgName y) $ map P.packageId ps of
......@@ -272,8 +273,6 @@ chooseDep flags (importer, m, mipi) = case mipi of
return Nothing
where
v = fromFlagOrDefault normal (initVerbosity flags)
-- desugar if cabal version lower than 2.0
desugar = case cabalVersion flags of
Flag x -> x < CabalSpecV2_0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment