Skip to content

Commit 0dff8a6

Browse files
committed
Add --pick-first-target flag
1 parent 4b93757 commit 0dff8a6

File tree

15 files changed

+146
-63
lines changed

15 files changed

+146
-63
lines changed

cabal-install/Distribution/Client/CmdBench.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import Distribution.Client.ProjectOrchestration
2222
import Distribution.Client.CmdErrorMessages
2323
( renderTargetSelector, showTargetSelector, renderTargetProblem,
2424
renderTargetProblemNoTargets, plural, targetSelectorPluralPkgs,
25-
targetSelectorFilter, AmbiguityResolver(..) )
25+
targetSelectorFilter )
2626
import Distribution.Client.TargetProblem
2727
( TargetProblem (..) )
2828
import Distribution.Client.NixStyleOptions
@@ -88,7 +88,7 @@ benchAction flags@NixStyleFlags {..} targetStrings globalFlags = do
8888

8989
targetSelectors <- either (reportTargetSelectorProblems verbosity) return
9090
=<< readTargetSelectors (localPackages baseCtx)
91-
(AmbiguityResolverKind BenchKind) targetStrings
91+
(Just BenchKind) flags targetStrings
9292

9393
buildCtx <-
9494
runProjectPreBuildPhase verbosity baseCtx $ \elaboratedPlan -> do

cabal-install/Distribution/Client/CmdBuild.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ buildAction flags@NixStyleFlags { extraFlags = buildFlags, ..} targetStrings glo
107107
targetSelectors <-
108108
either (reportTargetSelectorProblems verbosity) return
109109
=<< readTargetSelectors (localPackages baseCtx)
110-
AmbiguityResolverNone targetStrings
110+
Nothing flags targetStrings
111111

112112
buildCtx <-
113113
runProjectPreBuildPhase verbosity baseCtx $ \elaboratedPlan -> do

cabal-install/Distribution/Client/CmdErrorMessages.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Distribution.Client.TargetSelector
2121
import Distribution.Client.TargetProblem
2222
( TargetProblem(..), TargetProblem' )
2323
import Distribution.Client.TargetSelector
24-
( ComponentKind(..), AmbiguityResolver(..), TargetSelector(..),
24+
( ComponentKind(..), TargetSelector(..),
2525
componentKind, showTargetSelector )
2626

2727
import Distribution.Package

cabal-install/Distribution/Client/CmdHaddock.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ haddockAction flags@NixStyleFlags {..} targetStrings globalFlags = do
7676
baseCtx <- establishProjectBaseContext verbosity cliConfig HaddockCommand
7777

7878
targetSelectors <- either (reportTargetSelectorProblems verbosity) return
79-
=<< readTargetSelectors (localPackages baseCtx)
80-
AmbiguityResolverNone targetStrings
79+
=<< readTargetSelectors (localPackages baseCtx) Nothing flags
80+
targetStrings
8181

8282
buildCtx <-
8383
runProjectPreBuildPhase verbosity baseCtx $ \elaboratedPlan -> do

cabal-install/Distribution/Client/CmdInstall.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ installAction flags@NixStyleFlags { extraFlags = clientInstallFlags', .. } targe
240240
else do
241241
targetSelectors <-
242242
either (reportTargetSelectorProblems verbosity) return
243-
=<< readTargetSelectors (localPackages localBaseCtx)
244-
AmbiguityResolverNone targetStrings''
243+
=<< readTargetSelectors (localPackages localBaseCtx) Nothing flags
244+
targetStrings''
245245

246246
(specs, selectors) <-
247247
getSpecsAndTargetSelectors

cabal-install/Distribution/Client/CmdRepl.hs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import qualified Distribution.Types.Lens as L
2626
import Distribution.Client.NixStyleOptions
2727
( NixStyleFlags (..), nixStyleOptions, defaultNixStyleFlags )
2828
import Distribution.Client.CmdErrorMessages
29-
( renderTargetSelector, showTargetSelector, AmbiguityResolver(..),
29+
( renderTargetSelector, showTargetSelector,
3030
renderTargetProblem,
3131
targetSelectorRefersToPkgs,
3232
renderComponentKind, renderListCommaAnd, renderListSemiAnd,
@@ -204,7 +204,7 @@ replCommand = Client.installCommand {
204204
replAction :: NixStyleFlags (ReplFlags, EnvFlags) -> [String] -> GlobalFlags -> IO ()
205205
replAction flags@NixStyleFlags { extraFlags = (replFlags, envFlags), ..} targetStrings globalFlags = do
206206
let
207-
with = withProject cliConfig verbosity targetStrings
207+
with = withProject flags cliConfig verbosity targetStrings
208208
without config = withoutProject (config <> cliConfig) verbosity targetStrings
209209

210210
(baseCtx, targetSelectors, finalizer, replType) <-
@@ -338,13 +338,14 @@ data ReplType = ProjectRepl
338338
-- 7.6, though. 🙁
339339
deriving (Show, Eq)
340340

341-
withProject :: ProjectConfig -> Verbosity -> [String]
341+
withProject :: NixStyleFlags a -> ProjectConfig -> Verbosity -> [String]
342342
-> IO (ProjectBaseContext, [TargetSelector], IO (), ReplType)
343-
withProject cliConfig verbosity targetStrings = do
343+
withProject flags cliConfig verbosity targetStrings = do
344344
baseCtx <- establishProjectBaseContext verbosity cliConfig OtherCommand
345345

346346
targetSelectors <- either (reportTargetSelectorProblems verbosity) return
347-
=<< readTargetSelectors (localPackages baseCtx) (AmbiguityResolverKind LibKind) targetStrings
347+
=<< readTargetSelectors (localPackages baseCtx) (Just LibKind)
348+
flags targetStrings
348349

349350
return (baseCtx, targetSelectors, return (), ProjectRepl)
350351

cabal-install/Distribution/Client/CmdRun.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ import Distribution.Client.ProjectPlanning
5959
import Distribution.Client.ProjectPlanning.Types
6060
( dataDirsEnvironmentForPlan )
6161
import Distribution.Client.TargetSelector
62-
( TargetSelectorProblem(..), TargetString(..), AmbiguityResolver(..) )
62+
( TargetSelectorProblem(..), TargetString(..) )
6363
import Distribution.Client.InstallPlan
6464
( toList, foldPlanPackage )
6565
import Distribution.Types.UnqualComponentName
@@ -182,7 +182,7 @@ runAction flags@NixStyleFlags {..} targetStrings globalFlags = do
182182
else reportTargetSelectorProblems verbosity err
183183

184184
(baseCtx', targetSelectors) <-
185-
readTargetSelectors (localPackages baseCtx) (AmbiguityResolverKind ExeKind) (take 1 targetStrings)
185+
readTargetSelectors (localPackages baseCtx) (Just ExeKind) flags (take 1 targetStrings)
186186
>>= \case
187187
Left err@(TargetSelectorNoTargetsInProject:_)
188188
| (script:_) <- targetStrings -> scriptOrError script err

cabal-install/Distribution/Client/CmdSdist.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import Distribution.Client.ProjectOrchestration
1818
import Distribution.Client.NixStyleOptions
1919
( NixStyleFlags (..), defaultNixStyleFlags )
2020
import Distribution.Client.TargetSelector
21-
( TargetSelector(..), ComponentKind, AmbiguityResolver(..)
22-
, readTargetSelectors, reportTargetSelectorProblems )
21+
( TargetSelector(..), ComponentKind
22+
, readTargetSelectors', reportTargetSelectorProblems )
2323
import Distribution.Client.Setup
2424
( GlobalFlags(..) )
2525
import Distribution.Solver.Types.SourcePackage
@@ -151,7 +151,7 @@ sdistAction (ProjectFlags{..}, SdistFlags{..}) targetStrings globalFlags = do
151151
let localPkgs = localPackages baseCtx
152152

153153
targetSelectors <- either (reportTargetSelectorProblems verbosity) return
154-
=<< readTargetSelectors localPkgs AmbiguityResolverNone targetStrings
154+
=<< readTargetSelectors' localPkgs Nothing targetStrings
155155

156156
-- elaborate path, create target directory
157157
mOutputPath' <- case mOutputPath of

cabal-install/Distribution/Client/CmdShowBuildInfo.hs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ showBuildInfoAction flags@NixStyleFlags { extraFlags = (ShowBuildInfoFlags fileO
114114
}
115115

116116
targetSelectors <- either (reportTargetSelectorProblems verbosity) return
117-
=<< readTargetSelectors (localPackages baseCtx') AmbiguityResolverFirst targetStrings
117+
=<< readTargetSelectors (localPackages baseCtx') Nothing flags targetStrings
118118

119119
buildCtx <-
120120
runProjectPreBuildPhase verbosity baseCtx' $ \elaboratedPlan -> do
@@ -155,6 +155,8 @@ showBuildInfoAction flags@NixStyleFlags { extraFlags = (ShowBuildInfoFlags fileO
155155

156156
showTargets :: Maybe FilePath -> Maybe [String] -> Verbosity -> ProjectBaseContext -> ProjectBuildContext -> Lock -> IO ()
157157
showTargets fileOutput unitIds verbosity baseCtx buildCtx lock = do
158+
159+
-- TODO: can we use --disable-per-component so that we only get one package?
158160
let configured = [p | InstallPlan.Configured p <- InstallPlan.toList (elaboratedPlanOriginal buildCtx)]
159161
targets = maybe (fst <$> (Map.toList . targetsMap $ buildCtx)) (map mkUnitId) unitIds
160162

cabal-install/Distribution/Client/CmdTest.hs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ import Distribution.Client.ProjectOrchestration
2222
import Distribution.Client.CmdErrorMessages
2323
( renderTargetSelector, showTargetSelector, targetSelectorFilter, plural,
2424
renderTargetProblem,
25-
renderTargetProblemNoTargets, targetSelectorPluralPkgs,
26-
AmbiguityResolver(..) )
25+
renderTargetProblemNoTargets, targetSelectorPluralPkgs )
2726
import Distribution.Client.TargetProblem
2827
( TargetProblem (..) )
2928
import Distribution.Client.NixStyleOptions
@@ -100,8 +99,8 @@ testAction flags@NixStyleFlags {..} targetStrings globalFlags = do
10099
baseCtx <- establishProjectBaseContext verbosity cliConfig OtherCommand
101100

102101
targetSelectors <- either (reportTargetSelectorProblems verbosity) return
103-
=<< readTargetSelectors (localPackages baseCtx)
104-
(AmbiguityResolverKind TestKind) targetStrings
102+
=<< readTargetSelectors (localPackages baseCtx)
103+
(Just TestKind) flags targetStrings
105104

106105
buildCtx <-
107106
runProjectPreBuildPhase verbosity baseCtx $ \elaboratedPlan -> do

0 commit comments

Comments
 (0)