@@ -31,6 +31,7 @@ import qualified Distribution.Client.Outdated as V1Outdated
3131import Distribution.Client.ProjectConfig
3232 ( ProjectConfig (.. )
3333 , commandLineFlagsToProjectConfig
34+ , projectConfigWithSolverRepoContext
3435 )
3536import Distribution.Client.ProjectFlags
3637 ( ProjectFlags (.. )
@@ -100,7 +101,8 @@ import Distribution.Types.PackageVersionConstraint
100101 )
101102import Distribution.Types.UnqualComponentName (UnqualComponentName )
102103import Distribution.Verbosity
103- ( normal
104+ ( lessVerbose
105+ , normal
104106 , silent
105107 )
106108import Distribution.Version
@@ -129,40 +131,35 @@ outdatedCommand =
129131-- For more details on how this works, see the module
130132-- "Distribution.Client.ProjectOrchestration"
131133outdatedAction :: NixStyleFlags OutdatedFlags -> [String ] -> GlobalFlags -> IO ()
132- outdatedAction flags _extraArgs globalFlags = do
133- let mprojectDir = flagToMaybe . flagProjectDir $ projectFlags flags
134- mprojectFile = flagToMaybe . flagProjectFile $ projectFlags flags
134+ outdatedAction flags@ NixStyleFlags {configFlags} _extraArgs globalFlags = do
135+ ProjectBaseContext {localPackages, projectConfig} <- establishProjectBaseContext verbosity cliConfig OtherCommand
135136
136- config <- loadConfigOrSandboxConfig verbosity globalFlags
137- let globalFlags' = savedGlobalFlags config `mappend` globalFlags
137+ projectConfigWithSolverRepoContext
138+ verbosity
139+ (projectConfigShared projectConfig)
140+ (projectConfigBuildOnly projectConfig)
141+ $ \ repoContext -> do
142+ -- Why?
143+ -- when (not v2FreezeFile && (isJust mprojectDir || isJust mprojectFile)) $
144+ -- dieWithException verbosity OutdatedAction
138145
139- (comp, platform, _progdb) <- configCompilerAux' $ configFlags flags
146+ sourcePkgDb <- IndexUtils. getSourcePackages verbosity repoContext
140147
141- withRepoContext verbosity globalFlags' $ \ repoContext -> do
142- when (not v2FreezeFile && (isJust mprojectDir || isJust mprojectFile)) $
143- dieWithException verbosity OutdatedAction
148+ let pkgVerConstraints = extractPackageVersionConstraints localPackages
144149
145- sourcePkgDb <- IndexUtils. getSourcePackages verbosity repoContext
146- prjBaseCtxt <- establishProjectBaseContext verbosity cliConfig OtherCommand
147- pkgVerConstraints <-
148- if
149- | v1FreezeFile -> V1Outdated. depsFromFreezeFile verbosity
150- | v2FreezeFile ->
151- V1Outdated. depsFromNewFreezeFile verbosity globalFlags comp platform mprojectDir mprojectFile
152- | otherwise -> pure $ extractPackageVersionConstraints (localPackages prjBaseCtxt)
150+ debug verbosity $
151+ " Dependencies loaded: " ++ intercalate " , " (map prettyShow pkgVerConstraints)
153152
154- debug verbosity $
155- " Dependencies loaded: " ++ intercalate " , " (map prettyShow pkgVerConstraints)
153+ let outdatedDeps = V1Outdated. listOutdated pkgVerConstraints sourcePkgDb (ListOutdatedSettings ignorePred minorPred)
156154
157- let outdatedDeps = V1Outdated. listOutdated pkgVerConstraints sourcePkgDb ( ListOutdatedSettings ignorePred minorPred)
155+ V1Outdated. showResult (lessVerbose verbosity) outdatedDeps simpleOutput
158156
159- when (not quiet) $
160- V1Outdated. showResult verbosity outdatedDeps simpleOutput
161- if exitCode && (not . null $ outdatedDeps)
162- then exitFailure
163- else pure ()
157+ if exitCode && (not . null $ outdatedDeps)
158+ then exitFailure
159+ else pure ()
164160 where
165- cliConfig :: ProjectConfig
161+ verbosity = fromFlagOrDefault normal (configVerbosity configFlags)
162+
166163 cliConfig =
167164 commandLineFlagsToProjectConfig
168165 globalFlags
@@ -193,12 +190,6 @@ outdatedAction flags _extraArgs globalFlags = do
193190 let minorSet = Set. fromList pkgs
194191 in \ pkgname -> pkgname `Set.member` minorSet
195192
196- verbosity :: Verbosity
197- verbosity =
198- if quiet
199- then silent
200- else fromFlagOrDefault normal (configVerbosity $ configFlags flags)
201-
202193data OutdatedFlags = OutdatedFlags
203194 { outdatedFreezeFile :: Flag Bool
204195 , outdatedNewFreezeFile :: Flag Bool
0 commit comments