Finish off the external commands feature
* Remove 'CommandDelegate' in favour of abstracting the fallback in 'commandsRun', there is a new variant 'commdandRunWithFallback' which takes a continuation - This restores the modularity between the `Cabal` library and `cabal-install` as now `Cabal` doesn't need to know anything about the external command interface. - Fixes #9403 * Set the $CABAL environment variable to the current executable path - This allows external commands to be implemented by calling $CABAL, which is strongly preferred to linking against the Cabal library as there is no easy way to guantee your tool and `cabal-install` link against the same `Cabal` library. - Fixes #9402 * Pass the name of the argument - This allows external commands to be implemented as symlinks to an executable, and multiple commands can be interpreted by the same executable. - Fixes #9405 * `cabal help <cmd>` is interpreted as `cabal-<cmd> --help` for external commands. - This allows the `help` command to also work for external commands and hence they are better integrated into cabal-install. - Fixes #9404 The tests are updated to test all these additions. These features bring the external command interface up to par with the cargo external command interface.
Showing
- Cabal/src/Distribution/Make.hs 0 additions, 2 deletionsCabal/src/Distribution/Make.hs
- Cabal/src/Distribution/Simple.hs 0 additions, 2 deletionsCabal/src/Distribution/Simple.hs
- Cabal/src/Distribution/Simple/Command.hs 54 additions, 48 deletionsCabal/src/Distribution/Simple/Command.hs
- cabal-install/src/Distribution/Client/Main.hs 28 additions, 5 deletionscabal-install/src/Distribution/Client/Main.hs
- cabal-install/src/Distribution/Client/SavedFlags.hs 0 additions, 1 deletioncabal-install/src/Distribution/Client/SavedFlags.hs
- cabal-testsuite/PackageTests/ExternalCommand/cabal.test.hs 15 additions, 5 deletionscabal-testsuite/PackageTests/ExternalCommand/cabal.test.hs
- cabal-testsuite/PackageTests/ExternalCommand/setup-test/AAAA.hs 3 additions, 2 deletions...testsuite/PackageTests/ExternalCommand/setup-test/AAAA.hs
- cabal-testsuite/PackageTests/ExternalCommandEnv/cabal.test.hs 3 additions, 6 deletions...l-testsuite/PackageTests/ExternalCommandEnv/cabal.test.hs
- cabal-testsuite/PackageTests/ExternalCommandHelp/cabal.out 0 additions, 4 deletionscabal-testsuite/PackageTests/ExternalCommandHelp/cabal.out
- cabal-testsuite/PackageTests/ExternalCommandHelp/cabal.test.hs 2 additions, 6 deletions...-testsuite/PackageTests/ExternalCommandHelp/cabal.test.hs
- cabal-testsuite/PackageTests/ExternalCommandHelp/setup-test/AAAA.hs 1 addition, 1 deletion...suite/PackageTests/ExternalCommandHelp/setup-test/AAAA.hs
- cabal-testsuite/PackageTests/ExternalCommandSetup/setup.cabal.hs 4 additions, 7 deletions...estsuite/PackageTests/ExternalCommandSetup/setup.cabal.hs
- cabal-testsuite/PackageTests/ExternalCommandSetup/setup.out 5 additions, 14 deletionscabal-testsuite/PackageTests/ExternalCommandSetup/setup.out
- cabal-testsuite/src/Test/Cabal/Prelude.hs 13 additions, 3 deletionscabal-testsuite/src/Test/Cabal/Prelude.hs
- doc/external-commands.rst 16 additions, 2 deletionsdoc/external-commands.rst
Loading
Please register or sign in to comment