1
1
{-# LANGUAGE MultiWayIf #-}
2
- {-# LANGUAGE NamedFieldPuns #-}
3
2
{-# LANGUAGE RankNTypes #-}
4
3
5
4
-- | cabal-install CLI command: outdated
@@ -11,12 +10,6 @@ module Distribution.Client.CmdOutdated
11
10
import qualified Data.Set as Set
12
11
13
12
import Distribution.Client.Compat.Prelude
14
- import Distribution.Client.Config
15
- ( SavedConfig
16
- ( savedGlobalFlags
17
- )
18
- )
19
- import Distribution.Client.Errors (CabalInstallException (OutdatedAction ))
20
13
import qualified Distribution.Client.IndexUtils as IndexUtils
21
14
import Distribution.Client.NixStyleOptions
22
15
( NixStyleFlags (.. )
@@ -41,14 +34,9 @@ import Distribution.Client.ProjectOrchestration
41
34
, ProjectBaseContext (.. )
42
35
, establishProjectBaseContext
43
36
)
44
- import Distribution.Client.Sandbox
45
- ( loadConfigOrSandboxConfig
46
- )
47
37
import Distribution.Client.Setup
48
38
( ConfigFlags (.. )
49
39
, GlobalFlags (.. )
50
- , configCompilerAux'
51
- , withRepoContext
52
40
)
53
41
import Distribution.Client.Types.PackageLocation
54
42
( UnresolvedPkgLoc
@@ -77,9 +65,11 @@ import Distribution.Simple.Flag
77
65
import Distribution.Simple.Setup
78
66
( trueArg
79
67
)
68
+ import Distribution.Simple.Configure
69
+ ( configCompilerAuxEx
70
+ )
80
71
import Distribution.Simple.Utils
81
72
( debug
82
- , dieWithException
83
73
, wrapText
84
74
)
85
75
import Distribution.Solver.Types.SourcePackage
@@ -101,9 +91,7 @@ import Distribution.Types.PackageVersionConstraint
101
91
)
102
92
import Distribution.Types.UnqualComponentName (UnqualComponentName )
103
93
import Distribution.Verbosity
104
- ( lessVerbose
105
- , normal
106
- , silent
94
+ ( normal
107
95
)
108
96
import Distribution.Version
109
97
( simplifyVersionRange
@@ -131,34 +119,41 @@ outdatedCommand =
131
119
-- For more details on how this works, see the module
132
120
-- "Distribution.Client.ProjectOrchestration"
133
121
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
136
124
137
125
projectConfigWithSolverRepoContext
138
126
verbosity
139
- (projectConfigShared projectConfig)
140
- (projectConfigBuildOnly projectConfig)
127
+ (projectConfigShared $ projectConfig prjBasedCtxt )
128
+ (projectConfigBuildOnly $ projectConfig prjBasedCtxt )
141
129
$ \ 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
145
132
146
133
sourcePkgDb <- IndexUtils. getSourcePackages verbosity repoContext
147
134
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)
149
143
150
144
debug verbosity $
151
145
" Dependencies loaded: " ++ intercalate " , " (map prettyShow pkgVerConstraints)
152
146
153
147
let outdatedDeps = V1Outdated. listOutdated pkgVerConstraints sourcePkgDb (ListOutdatedSettings ignorePred minorPred)
154
148
155
- V1Outdated. showResult (lessVerbose verbosity) outdatedDeps simpleOutput
149
+ when (not quiet) $
150
+ V1Outdated. showResult verbosity outdatedDeps simpleOutput
156
151
157
152
if exitCode && (not . null $ outdatedDeps)
158
153
then exitFailure
159
154
else pure ()
160
155
where
161
- verbosity = fromFlagOrDefault normal (configVerbosity configFlags)
156
+ verbosity = fromFlagOrDefault normal (configVerbosity $ configFlags flags )
162
157
163
158
cliConfig =
164
159
commandLineFlagsToProjectConfig
0 commit comments