Skip to content

Commit 598c651

Browse files
committed
Passes first test
1 parent aee8d08 commit 598c651

File tree

1 file changed

+21
-26
lines changed

1 file changed

+21
-26
lines changed

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

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{-# LANGUAGE MultiWayIf #-}
2-
{-# LANGUAGE NamedFieldPuns #-}
32
{-# LANGUAGE RankNTypes #-}
43

54
-- | cabal-install CLI command: outdated
@@ -11,12 +10,6 @@ module Distribution.Client.CmdOutdated
1110
import qualified Data.Set as Set
1211

1312
import Distribution.Client.Compat.Prelude
14-
import Distribution.Client.Config
15-
( SavedConfig
16-
( savedGlobalFlags
17-
)
18-
)
19-
import Distribution.Client.Errors (CabalInstallException (OutdatedAction))
2013
import qualified Distribution.Client.IndexUtils as IndexUtils
2114
import Distribution.Client.NixStyleOptions
2215
( NixStyleFlags (..)
@@ -41,14 +34,9 @@ import Distribution.Client.ProjectOrchestration
4134
, ProjectBaseContext (..)
4235
, establishProjectBaseContext
4336
)
44-
import Distribution.Client.Sandbox
45-
( loadConfigOrSandboxConfig
46-
)
4737
import Distribution.Client.Setup
4838
( ConfigFlags (..)
4939
, GlobalFlags (..)
50-
, configCompilerAux'
51-
, withRepoContext
5240
)
5341
import Distribution.Client.Types.PackageLocation
5442
( UnresolvedPkgLoc
@@ -77,9 +65,11 @@ import Distribution.Simple.Flag
7765
import Distribution.Simple.Setup
7866
( trueArg
7967
)
68+
import Distribution.Simple.Configure
69+
( configCompilerAuxEx
70+
)
8071
import Distribution.Simple.Utils
8172
( debug
82-
, dieWithException
8373
, wrapText
8474
)
8575
import Distribution.Solver.Types.SourcePackage
@@ -101,9 +91,7 @@ import Distribution.Types.PackageVersionConstraint
10191
)
10292
import Distribution.Types.UnqualComponentName (UnqualComponentName)
10393
import Distribution.Verbosity
104-
( lessVerbose
105-
, normal
106-
, silent
94+
( normal
10795
)
10896
import Distribution.Version
10997
( simplifyVersionRange
@@ -131,34 +119,41 @@ outdatedCommand =
131119
-- For more details on how this works, see the module
132120
-- "Distribution.Client.ProjectOrchestration"
133121
outdatedAction :: NixStyleFlags OutdatedFlags -> [String] -> GlobalFlags -> IO ()
134-
outdatedAction flags@NixStyleFlags{configFlags} _extraArgs globalFlags = do
135-
ProjectBaseContext{localPackages, projectConfig} <- establishProjectBaseContext verbosity cliConfig OtherCommand
122+
outdatedAction flags _extraArgs globalFlags = do
123+
prjBasedCtxt <- establishProjectBaseContext verbosity cliConfig OtherCommand
136124

137125
projectConfigWithSolverRepoContext
138126
verbosity
139-
(projectConfigShared projectConfig)
140-
(projectConfigBuildOnly projectConfig)
127+
(projectConfigShared $ projectConfig prjBasedCtxt)
128+
(projectConfigBuildOnly $ projectConfig prjBasedCtxt)
141129
$ \repoContext -> do
142-
-- Why?
143-
-- when (not v2FreezeFile && (isJust mprojectDir || isJust mprojectFile)) $
144-
-- dieWithException verbosity OutdatedAction
130+
let mprojectDir = flagToMaybe . flagProjectDir $ projectFlags flags
131+
mprojectFile = flagToMaybe . flagProjectFile $ projectFlags flags
145132

146133
sourcePkgDb <- IndexUtils.getSourcePackages verbosity repoContext
147134

148-
let pkgVerConstraints = extractPackageVersionConstraints localPackages
135+
pkgVerConstraints <-
136+
if
137+
| v1FreezeFile -> V1Outdated.depsFromFreezeFile verbosity
138+
| v2FreezeFile -> do
139+
putStrLn $ "configHcFlavor: " ++ show (configHcFlavor $ configFlags flags)
140+
(comp, platform, _progdb) <- configCompilerAuxEx $ configFlags flags
141+
V1Outdated.depsFromNewFreezeFile verbosity globalFlags comp platform mprojectDir mprojectFile
142+
| otherwise -> pure $ extractPackageVersionConstraints (localPackages prjBasedCtxt)
149143

150144
debug verbosity $
151145
"Dependencies loaded: " ++ intercalate ", " (map prettyShow pkgVerConstraints)
152146

153147
let outdatedDeps = V1Outdated.listOutdated pkgVerConstraints sourcePkgDb (ListOutdatedSettings ignorePred minorPred)
154148

155-
V1Outdated.showResult (lessVerbose verbosity) outdatedDeps simpleOutput
149+
when (not quiet) $
150+
V1Outdated.showResult verbosity outdatedDeps simpleOutput
156151

157152
if exitCode && (not . null $ outdatedDeps)
158153
then exitFailure
159154
else pure ()
160155
where
161-
verbosity = fromFlagOrDefault normal (configVerbosity configFlags)
156+
verbosity = fromFlagOrDefault normal (configVerbosity $ configFlags flags)
162157

163158
cliConfig =
164159
commandLineFlagsToProjectConfig

0 commit comments

Comments
 (0)