@@ -24,7 +24,9 @@ import Distribution.Client.ProjectConfig
24
24
( ProjectConfig (.. )
25
25
, ProjectConfigShared (projectConfigConfigFile )
26
26
, projectConfigWithSolverRepoContext
27
- , withProjectOrGlobalConfig )
27
+ , withProjectOrGlobalConfigIgn )
28
+ import Distribution.Client.ProjectFlags
29
+ ( ProjectFlags (.. ), defaultProjectFlags , projectFlagsOptions )
28
30
import Distribution.Client.Types
29
31
( Repo (.. ), RepoName (.. ), unRepoName , RemoteRepo (.. ), isRepoRemote )
30
32
import Distribution.Client.HttpUtils
@@ -61,11 +63,11 @@ import Distribution.Client.GZipUtils (maybeDecompress)
61
63
import System.FilePath ((<.>) , dropExtension )
62
64
import Data.Time (getCurrentTime )
63
65
import Distribution.Simple.Command
64
- ( CommandUI (.. ), usageAlternatives )
66
+ ( CommandUI (.. ), usageAlternatives , optionName )
65
67
66
68
import qualified Hackage.Security.Client as Sec
67
69
68
- updateCommand :: CommandUI (NixStyleFlags () )
70
+ updateCommand :: CommandUI (NixStyleFlags ProjectFlags )
69
71
updateCommand = CommandUI
70
72
{ commandName = " v2-update"
71
73
, commandSynopsis = " Updates list of known packages."
@@ -96,8 +98,12 @@ updateCommand = CommandUI
96
98
++ " https://github.com/haskell/cabal/issues and if you\n have any time "
97
99
++ " to get involved and help with testing, fixing bugs etc then\n that "
98
100
++ " 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
101
107
}
102
108
103
109
data UpdateRequest = UpdateRequest
@@ -114,9 +120,11 @@ instance Parsec UpdateRequest where
114
120
state <- P. char ' ,' *> parsec <|> pure IndexStateHead
115
121
return (UpdateRequest name state)
116
122
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
120
128
(projectConfig <$> establishProjectBaseContext verbosity cliConfig OtherCommand )
121
129
(\ globalConfig -> return $ globalConfig <> cliConfig)
122
130
0 commit comments