Override existing options or add additional options to tasks through console
FlubuCore offers you to add or override options in all tasks that run external processes.
Let's say you have target
context.CreateTarget("Example")`
.AddCoreTask(x => x.Build("MySolution.sln").Configuration("Release");
and you wan't to build solution in debug configuration. You could just write in console
flubu example --configuration=Debug
flubu would execute
dotnet build MySolution.sln --configuration Debug
Note
option keys are the same as in external processes. short versions of options keys also work. So in above example -c=debug
would also work.
FlubuCore also support tab completion for all options in tasks that run's external processes in Interactive mode
Tasks in FlubuCore plugins that does not support overriding of options out of the box can still be overriden with special prefix before option key /o:
/o:{external_process_option={value}
With /o:
FlubuCore adds specified option to all tasks in target's which can be a problem if target execute multiple tasks. So instead of /o:
you can use prefix by task name
/{taskName}:{external_process_option}={value}
Alternatively you can change default prefix on task
context.CreateTarget("Publish")
AddCoreTask(x => x.Publish()
.ChangeDefaultAdditionalOptionPrefix("/p:"));
Example¶
Build task does support overriding of options out of the box but for the simplicity of the example build task is used.
context.CreateTarget("Example")`
.AddCoreTask(x => x.Build("MySolution.sln").Configuration("Release");
and you wan't to build solution in debug configuration. You could just write in console
flubu example /o:configuration=Debug
or
flubu example /o:c=Debug
or
flubu example /build:c=Debug
flubu would execute
dotnet build MySolution.sln -c Debug