diff --git a/Cake.ArgumentHelpers.Tests/ArgumentOrEnvironmentVariableAliasTests.cs b/Cake.ArgumentHelpers.Tests/ArgumentOrEnvironmentVariableAliasTests.cs
index aab6307..a628d33 100644
--- a/Cake.ArgumentHelpers.Tests/ArgumentOrEnvironmentVariableAliasTests.cs
+++ b/Cake.ArgumentHelpers.Tests/ArgumentOrEnvironmentVariableAliasTests.cs
@@ -105,6 +105,21 @@ namespace Cake.ArgumentHelpers.Tests
var expected = true;
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
+ Assert.AreEqual(expected, actual, "Didn't find Environment variable without prefix.");
+ }
+ [Test]
+ public void NullArgumentAndTrueEnvironmentNoPrefixOverload_ReturnsTrue()
+ {
+ var testKey = "someVariable";
+ var testKeyEnvironmentPrefix = (string)null;
+ bool? testArgumentValue = null;
+ bool? testEnvironmentValue = true;
+
+ SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
+
+ var expected = true;
+ var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, true);
+
Assert.AreEqual(expected, actual, "Didn't find Environment variable without prefix.");
}
[Test]
diff --git a/Cake.ArgumentHelpers/ArgumentOrEnvironmentVariableAlias.cs b/Cake.ArgumentHelpers/ArgumentOrEnvironmentVariableAlias.cs
index d74365d..01c1bcb 100644
--- a/Cake.ArgumentHelpers/ArgumentOrEnvironmentVariableAlias.cs
+++ b/Cake.ArgumentHelpers/ArgumentOrEnvironmentVariableAlias.cs
@@ -17,5 +17,15 @@ namespace Cake.ArgumentHelpers
{
return ArgumentAliases.Argument(context, name, EnvironmentAliases.EnvironmentVariable(context, (environmentNamePrefix ?? "") + name) ?? defaultValue.ToString()).Equals("true", StringComparison.OrdinalIgnoreCase);
}
+
+ ///
+ /// Get a bool variable from various script inputs: first via Argument, then falling back on EnvironmentVariable, finally falling back on a default.
+ ///
+ /// Value found or default, first checked in command-line argument, then environment variable.
+ [CakeMethodAlias]
+ public static bool ArgumentOrEnvironmentVariable(this ICakeContext context, string name, bool defaultValue)
+ {
+ return context.ArgumentOrEnvironmentVariable(name, null, defaultValue);
+ }
}
}