Completed

This commit is contained in:
Frank Ray 2024-01-06 17:24:27 +00:00 committed by Patrik Svensson
parent d03c10623c
commit 55c763a5c2
2 changed files with 32 additions and 10 deletions

View File

@ -27,15 +27,35 @@ internal sealed class CommandExecutor
_registrar.RegisterInstance(typeof(CommandModel), model);
_registrar.RegisterDependencies(model);
// Asking for version? Kind of a hack, but it's alright.
// We should probably make this a bit better in the future.
if (args.Contains("-v") || args.Contains("--version"))
// No default command?
if (model.DefaultCommand == null)
{
var console = configuration.Settings.Console.GetConsole();
console.WriteLine(ResolveApplicationVersion(configuration));
return 0;
// Got at least one argument?
var firstArgument = args.FirstOrDefault();
if (firstArgument != null)
{
// Asking for version? Kind of a hack, but it's alright.
// We should probably make this a bit better in the future.
if (firstArgument.Equals("--version", StringComparison.OrdinalIgnoreCase) ||
firstArgument.Equals("-v", StringComparison.OrdinalIgnoreCase))
{
var console = configuration.Settings.Console.GetConsole();
console.WriteLine(ResolveApplicationVersion(configuration));
return 0;
}
}
}
//// Asking for version? Kind of a hack, but it's alright.
//// We should probably make this a bit better in the future.
//if (args.Count() > 0 &&
// (args.First().Equals("-v", StringComparison.OrdinalIgnoreCase) || args.First().Equals("--version", StringComparison.OrdinalIgnoreCase)))
//{
// var console = configuration.Settings.Console.GetConsole();
// console.WriteLine(ResolveApplicationVersion(configuration));
// return 0;
//}
// Parse and map the model against the arguments.
var parsedResult = ParseCommandLineArguments(model, configuration.Settings, args);

View File

@ -35,7 +35,7 @@ public sealed partial class CommandAppTests
}
[Fact]
public void Should_Output_Application_Version_To_The_Console_With_Command()
public void Should_Execute_Command_Not_Output_Application_Version_To_The_Console()
{
// Given
var fixture = new CommandAppTester();
@ -50,11 +50,12 @@ public sealed partial class CommandAppTests
var result = fixture.Run("empty", "--version");
// Then
result.Output.ShouldBe("1.0");
result.Output.ShouldBe(string.Empty);
result.Context.ShouldHaveRemainingArgument("version", new[] { (string)null });
}
[Fact]
public void Should_Output_Application_Version_To_The_Console_With_Default_Command()
public void Should_Execute_Default_Command_Not_Output_Application_Version_To_The_Console()
{
// Given
var fixture = new CommandAppTester();
@ -68,7 +69,8 @@ public sealed partial class CommandAppTests
var result = fixture.Run("--version");
// Then
result.Output.ShouldBe("1.0");
result.Output.ShouldBe(string.Empty);
result.Context.ShouldHaveRemainingArgument("version", new[] { (string)null });
}
[Fact]