Cake aliases (methods) to help with consuming arguments and environment variables.
If you like or are using this project please give it a star. Thanks!
Just reference the Cake.ArgumentHelpers NuGet package directly in your build script via a Cake addin directive.
#addin nuget:?package=Cake.ArgumentHelpers
Yep, just two so far...
bool ArgumentOrEnvironmentVariable(..., string name, string environmentNamePrefix, bool defaultValue)
Since EnvironmentVariable
always returns a string, it is more complex to involve it in an Argument
call with a fallback. This alias makes it a single call, hiding away the string comparison done to massage the result to a bool
value.
It works by getting a boolean value with multiple fallbacks:
- Try to get it from
Argument
(e.g., command line:-SomeSetting="true"
) - Try to get it from
EnvironmentVariable
(e.g.,$env:SomeProject_SomeSetting = $True;
) - Use a
defaultValue
if we don't find it elsewhere
Given a potential command line argument of SomeSetting
that could also be set via an environment variable prefixed with a project name, get the boolean value or false
if it isn't found:
var isSomethingTrue = ArgumentOrEnvironmentVariable("SomeSetting", "SomeProject_", false);
string ArgumentOrEnvironmentVariable(..., string name, string environmentNamePrefix[, string defaultValue])
This is a helper method that simply wraps around nested calls to Argument and EnvironmentVariable (and offering a fallback default).
It works by getting a string value with multiple fallbacks:
- Try to get it from
Argument
(e.g., command line:-SomeSetting="SomeValue"
) - Try to get it from
EnvironmentVariable
(e.g.,$env:SomeProject_SomeSetting = "SomeOtherValue";
) - Use a
defaultValue
if we don't find it elsewhere
Given a potential command line argument of SomeSetting
that could also be set via an environment variable (optionally prefixed with a project name), get the value from the command line first, falling back to the environment variable next before using the default fallback value if none of those are found:
var someVariableValue = ArgumentOrEnvironmentVariable("SomeSetting", "SomeProject_", "SomeFallbackValue");
For questions and to discuss ideas & feature requests, use the GitHub discussions on the Cake GitHub repository, under the Extension Q&A category.
Click on the Releases tab on GitHub.
Copyright © 2017-2021 Cake Contributors - Provided under the MIT License.