cake-contrib / Cake.ArgumentHelpers

Cake aliases to help with consuming arguments and environment variables.

Home Page:https://cakebuild.net/extensions/cake-argumenthelpers/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cake.ArgumentHelpers

Cake aliases (methods) to help with consuming arguments and environment variables.

Give a Star! ⭐

If you like or are using this project please give it a star. Thanks!

Getting Started

Just reference the Cake.ArgumentHelpers NuGet package directly in your build script via a Cake addin directive.

#addin nuget:?package=Cake.ArgumentHelpers

Available Aliases

Yep, just two so far...

ArgumentOrEnvironmentVariable (for boolean values)

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:

  1. Try to get it from Argument (e.g., command line: -SomeSetting="true")
  2. Try to get it from EnvironmentVariable (e.g., $env:SomeProject_SomeSetting = $True;)
  3. Use a defaultValue if we don't find it elsewhere

Example

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);

ArgumentOrEnvironmentVariable (for string values)

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:

  1. Try to get it from Argument (e.g., command line: -SomeSetting="SomeValue")
  2. Try to get it from EnvironmentVariable (e.g., $env:SomeProject_SomeSetting = "SomeOtherValue";)
  3. Use a defaultValue if we don't find it elsewhere

Example

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");

Discussion

For questions and to discuss ideas & feature requests, use the GitHub discussions on the Cake GitHub repository, under the Extension Q&A category.

Join in the discussion on the Cake repository

Release History

Click on the Releases tab on GitHub.


Copyright © 2017-2021 Cake Contributors - Provided under the MIT License.

About

Cake aliases to help with consuming arguments and environment variables.

https://cakebuild.net/extensions/cake-argumenthelpers/

License:MIT License


Languages

Language:C# 100.0%