Refactor CmdInstall
CmdInstall.installAction is ~300 lines long and full of nested scopes and ad-hoc logic. This change hopes to make it more readable and understandable. - Lift withProject and withoutProject out of installAction and split their relative concerns. E.g. not parsing URIs is installAction's concern not withProject's (which would just return a constant []). - Split an intermediate step into a separate function, resolveTargetSelectorsInProjectBaseContext. - Reuse withGlobalConfig and specFromPkgId (renamed from pidPackageSpecifiers). - Avoid trying withProject a second time in case no target is specified. - Fix a bug introduced in 802a326f where establishProjectBaseContext is called in a non-project setting. Also simplify its original implementation by moving the change into withProject rather than calling establishProjectBaseContext a second time. - Document the interaction between cabal v2-install and local configuration and add few comments.
Showing
- cabal-install/src/Distribution/Client/CmdInstall.hs 204 additions, 163 deletionscabal-install/src/Distribution/Client/CmdInstall.hs
- cabal-install/src/Distribution/Client/CmdInstall/ClientInstallTargetSelector.hs 2 additions, 13 deletions...ribution/Client/CmdInstall/ClientInstallTargetSelector.hs
- cabal-install/src/Distribution/Client/CmdSdist.hs 6 additions, 1 deletioncabal-install/src/Distribution/Client/CmdSdist.hs
- cabal-install/src/Distribution/Client/CmdUpdate.hs 2 additions, 3 deletionscabal-install/src/Distribution/Client/CmdUpdate.hs
- cabal-install/src/Distribution/Client/ProjectConfig.hs 17 additions, 34 deletionscabal-install/src/Distribution/Client/ProjectConfig.hs
- cabal-install/src/Distribution/Client/ProjectOrchestration.hs 3 additions, 0 deletions...l-install/src/Distribution/Client/ProjectOrchestration.hs
- cabal-install/src/Distribution/Client/ProjectPlanning.hs 2 additions, 0 deletionscabal-install/src/Distribution/Client/ProjectPlanning.hs
- cabal-install/src/Distribution/Client/ScriptUtils.hs 5 additions, 1 deletioncabal-install/src/Distribution/Client/ScriptUtils.hs
- cabal-install/src/Distribution/Client/Types/PackageSpecifier.hs 12 additions, 2 deletions...install/src/Distribution/Client/Types/PackageSpecifier.hs
Loading
Please register or sign in to comment