Skip to content

Commit a4c0be0

Browse files
committed
Resolve #6809: v2-update supports -z
1 parent 02859ae commit a4c0be0

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

cabal-install/Distribution/Client/CmdUpdate.hs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ import Distribution.Client.ProjectConfig
2424
( ProjectConfig(..)
2525
, ProjectConfigShared(projectConfigConfigFile)
2626
, projectConfigWithSolverRepoContext
27-
, withProjectOrGlobalConfig )
27+
, withProjectOrGlobalConfigIgn )
28+
import Distribution.Client.ProjectFlags
29+
( ProjectFlags (..), defaultProjectFlags, projectFlagsOptions )
2830
import Distribution.Client.Types
2931
( Repo(..), RepoName (..), unRepoName, RemoteRepo(..), isRepoRemote )
3032
import Distribution.Client.HttpUtils
@@ -61,11 +63,11 @@ import Distribution.Client.GZipUtils (maybeDecompress)
6163
import System.FilePath ((<.>), dropExtension)
6264
import Data.Time (getCurrentTime)
6365
import Distribution.Simple.Command
64-
( CommandUI(..), usageAlternatives )
66+
( CommandUI(..), usageAlternatives, optionName )
6567

6668
import qualified Hackage.Security.Client as Sec
6769

68-
updateCommand :: CommandUI (NixStyleFlags ())
70+
updateCommand :: CommandUI (NixStyleFlags ProjectFlags)
6971
updateCommand = CommandUI
7072
{ commandName = "v2-update"
7173
, commandSynopsis = "Updates list of known packages."
@@ -96,8 +98,12 @@ updateCommand = CommandUI
9698
++ "https://github.com/haskell/cabal/issues and if you\nhave any time "
9799
++ "to get involved and help with testing, fixing bugs etc then\nthat "
98100
++ "is very much appreciated.\n"
99-
, commandOptions = nixStyleOptions (const []) -- clientInstallOptions
100-
, commandDefaultFlags = defaultNixStyleFlags () -- defaultClientInstallFlags
101+
-- TODO: Add ProjectFlags to NixStyleFlags,
102+
-- so project-file won't be ambiguous
103+
, commandOptions = nixStyleOptions $ const
104+
$ filter (\o -> optionName o `notElem` ["project-file"])
105+
$ projectFlagsOptions
106+
, commandDefaultFlags = defaultNixStyleFlags defaultProjectFlags
101107
}
102108

103109
data UpdateRequest = UpdateRequest
@@ -114,9 +120,11 @@ instance Parsec UpdateRequest where
114120
state <- P.char ',' *> parsec <|> pure IndexStateHead
115121
return (UpdateRequest name state)
116122

117-
updateAction :: NixStyleFlags () -> [String] -> GlobalFlags -> IO ()
118-
updateAction NixStyleFlags {..} extraArgs globalFlags = do
119-
projectConfig <- withProjectOrGlobalConfig verbosity globalConfigFlag
123+
updateAction :: NixStyleFlags ProjectFlags -> [String] -> GlobalFlags -> IO ()
124+
updateAction NixStyleFlags { extraFlags = projectFlags, ..} extraArgs globalFlags = do
125+
let ignoreProject = fromFlagOrDefault False (flagIgnoreProject projectFlags)
126+
127+
projectConfig <- withProjectOrGlobalConfigIgn ignoreProject verbosity globalConfigFlag
120128
(projectConfig <$> establishProjectBaseContext verbosity cliConfig OtherCommand)
121129
(\globalConfig -> return $ globalConfig <> cliConfig)
122130

cabal-install/Distribution/Client/ProjectFlags.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ data ProjectFlags = ProjectFlags
1717
{ flagProjectFileName :: Flag FilePath
1818
, flagIgnoreProject :: Flag Bool
1919
}
20+
deriving (Show)
2021

2122
defaultProjectFlags :: ProjectFlags
2223
defaultProjectFlags = ProjectFlags

0 commit comments

Comments
 (0)