Allow users to use any of the Cake runner arguments as build script arguments
See original GitHub issueBackground
The Cake runner supports a number of arguments, such --version
to display the version of the runner, or --debug
to launch the script in debug mode.
However, this make it impossible for these names to be used as arguments in Cake build scripts. For example, if one wanted to use the argument version
as an input to the build script:
var version = Argument<string>("version");
And then run Cake:
dotnet cake --version=1.2.3
They would receive an error: Flags cannot be assigned a value
Workaround
The current workaround is to use the “remaining arguments” feature when using one of these “reserved” argument names:
dotnet cake -- --version=1.2.3
Proposal
This issue intends to make the necessary updates to allow existing “flag” arguments to be used in build scripts, so that if the user runs cake with --version=1.2.3
do not assume the flag --version
and instead execute the Cake script with the argument ["version"] = "1.2.3"
.
Command-line | Expected result |
---|---|
dotnet cake --version |
Display Cake version (as it is today) |
dotnet cake --version=1.2.3 |
Run build script and set the version argument to 1.2.3 |
This should work for all Cake runner arguments, except for Verbosity
which is not a “flag” argument.
Related:
Issue Analytics
- State:
- Created 3 years ago
- Comments:16 (8 by maintainers)
Top GitHub Comments
I have implemented the change to allow flags to be converted to remaining arguments if they cannot be assigned, and submitted the PR for this: https://github.com/spectreconsole/spectre.console/pull/1102
Once merged and a new version of spectre.console is available, turning this behaviour on should be a 1 line code change in the cake codebase 🙂
Update @augustoproiete - I have asked the maintainers of spectre to prioritise the above PR, so once merged, hopefully I can address this cake issue.