Skip to content

Commit aee8d08

Browse files
committed
Andrea's CmdOutdated version
1 parent 493f1ba commit aee8d08

File tree

1 file changed

+24
-33
lines changed

1 file changed

+24
-33
lines changed

cabal-install/src/Distribution/Client/CmdOutdated.hs

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import qualified Distribution.Client.Outdated as V1Outdated
3131
import Distribution.Client.ProjectConfig
3232
( ProjectConfig (..)
3333
, commandLineFlagsToProjectConfig
34+
, projectConfigWithSolverRepoContext
3435
)
3536
import Distribution.Client.ProjectFlags
3637
( ProjectFlags (..)
@@ -100,7 +101,8 @@ import Distribution.Types.PackageVersionConstraint
100101
)
101102
import Distribution.Types.UnqualComponentName (UnqualComponentName)
102103
import Distribution.Verbosity
103-
( normal
104+
( lessVerbose
105+
, normal
104106
, silent
105107
)
106108
import Distribution.Version
@@ -129,40 +131,35 @@ outdatedCommand =
129131
-- For more details on how this works, see the module
130132
-- "Distribution.Client.ProjectOrchestration"
131133
outdatedAction :: 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-
202193
data OutdatedFlags = OutdatedFlags
203194
{ outdatedFreezeFile :: Flag Bool
204195
, outdatedNewFreezeFile :: Flag Bool

0 commit comments

Comments
 (0)