From 31301ade8637a5664dd7cd16d4658d52c510ddba Mon Sep 17 00:00:00 2001 From: Declan Smith Date: Wed, 3 Sep 2025 16:11:40 +1000 Subject: [PATCH 1/4] improvement(help): Improved params display in help --- ...isplays_DefaultConsoleMessage.verified.txt | 3 +- DecSm.Atom/Help/HelpService.cs | 66 ++++++++++++++++--- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt index dc36125c..24d39558 100644 --- a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt +++ b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt @@ -20,8 +20,7 @@ Project Commands ConsoleTarget | Console target ├── Requires -│ └── --required-param | Required param -├── Options +│ ├── --required-param | Required param │ └── --default-param [Default: default-value] | Default param └── Secrets └── --secret-param | Secret param diff --git a/DecSm.Atom/Help/HelpService.cs b/DecSm.Atom/Help/HelpService.cs index f5a83139..95a8dcf7 100644 --- a/DecSm.Atom/Help/HelpService.cs +++ b/DecSm.Atom/Help/HelpService.cs @@ -122,10 +122,7 @@ private void WriteCommand(TargetModel target) var optionalParams = target .Params .Except(secrets) - .Where(x => x.Param.DefaultValue is { Length: > 0 } || - config - .GetSection("Params")[x.Param.ArgName] is { Length: > 0 } || - !x.Required) + .Where(x => !x.Required) .ToList(); var requiredParams = target @@ -136,21 +133,55 @@ private void WriteCommand(TargetModel target) if (requiredParams.Count > 0) { - var reqTree = tree.AddNode("[dim bold red]Requires[/]"); + var nodes = new List<(string Name, string Value, bool IsSupplied)>(requiredParams.Count); foreach (var requiredParam in requiredParams) { + var defaultValue = requiredParam.Param.DefaultValue ?? string.Empty; + + var configuredValue = config + .GetSection("Params")[requiredParam.Param.ArgName] ?? + string.Empty; + + var suppliedDisplay = (defaultValue, configuredValue) switch + { + ({ Length: > 0 }, { Length: > 0 }) when defaultValue == configuredValue => + $"[dim] [[Default/Configured: {defaultValue.EscapeMarkup()}]][/]", + ({ Length: > 0 }, { Length: > 0 }) => + $"[dim] [[Default: {defaultValue.EscapeMarkup()}]][/][dim][[Configured: {configuredValue.EscapeMarkup()}]][/]", + ({ Length: > 0 }, { Length: 0 }) => $"[dim] [[Default: {defaultValue.EscapeMarkup()}]][/]", + ({ Length: 0 }, { Length: > 0 }) => $"[dim] [[Configured: {configuredValue.EscapeMarkup()}]][/]", + _ => string.Empty, + }; + var descriptionDisplay = requiredParam.Param.Description is { Length: > 0 } ? $"[dim] | {requiredParam.Param.Description.EscapeMarkup()}[/]" : string.Empty; - reqTree.AddNode($"--{requiredParam.Param.ArgName.EscapeMarkup()}{descriptionDisplay}"); + var nameDisplay = suppliedDisplay is { Length: > 0 } + ? $"[green]--{requiredParam.Param.ArgName.EscapeMarkup()}[/]" + : $"--{requiredParam.Param.ArgName.EscapeMarkup()}"; + + nodes.Add((requiredParam.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", + suppliedDisplay is { Length: > 0 })); } + + var reqTree = tree.AddNode("[dim bold red]Requires[/]"); + + reqTree.AddNodes(nodes + .Where(x => !x.IsSupplied) + .OrderBy(x => x.Name) + .Select(x => x.Value)); + + reqTree.AddNodes(nodes + .Where(x => x.IsSupplied) + .OrderBy(x => x.Name) + .Select(x => x.Value)); } if (optionalParams.Count > 0) { - var optTree = tree.AddNode("[dim bold green]Options[/]"); + var nodes = new List<(string Name, string Value, bool IsSupplied)>(optionalParams.Count); foreach (var optionalParam in optionalParams) { @@ -160,7 +191,7 @@ private void WriteCommand(TargetModel target) .GetSection("Params")[optionalParam.Param.ArgName] ?? string.Empty; - var defaultDisplay = (defaultValue, configuredValue) switch + var suppliedDisplay = (defaultValue, configuredValue) switch { ({ Length: > 0 }, { Length: > 0 }) when defaultValue == configuredValue => $"[dim] [[Default/Configured: {defaultValue.EscapeMarkup()}]][/]", @@ -175,8 +206,25 @@ private void WriteCommand(TargetModel target) ? $"[dim] | {optionalParam.Param.Description.EscapeMarkup()}[/]" : string.Empty; - optTree.AddNode($"--{optionalParam.Param.ArgName.EscapeMarkup()}{defaultDisplay}{descriptionDisplay}"); + var nameDisplay = suppliedDisplay is { Length: > 0 } + ? $"[green]--{optionalParam.Param.ArgName.EscapeMarkup()}[/]" + : $"--{optionalParam.Param.ArgName.EscapeMarkup()}"; + + nodes.Add((optionalParam.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", + suppliedDisplay is { Length: > 0 })); } + + var optTree = tree.AddNode("[dim bold green]Options[/]"); + + optTree.AddNodes(nodes + .Where(x => !x.IsSupplied) + .OrderBy(x => x.Name) + .Select(x => x.Value)); + + optTree.AddNodes(nodes + .Where(x => x.IsSupplied) + .OrderBy(x => x.Name) + .Select(x => x.Value)); } if (secrets.Count > 0) From 72c66162344f3c628434f41e7bdb0a99da90681d Mon Sep 17 00:00:00 2001 From: Declan Smith Date: Wed, 3 Sep 2025 17:00:55 +1000 Subject: [PATCH 2/4] improvement(help): Improved params colors in help --- DecSm.Atom/Help/HelpService.cs | 71 +++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 22 deletions(-) diff --git a/DecSm.Atom/Help/HelpService.cs b/DecSm.Atom/Help/HelpService.cs index 95a8dcf7..2fc514f5 100644 --- a/DecSm.Atom/Help/HelpService.cs +++ b/DecSm.Atom/Help/HelpService.cs @@ -146,27 +146,25 @@ private void WriteCommand(TargetModel target) var suppliedDisplay = (defaultValue, configuredValue) switch { ({ Length: > 0 }, { Length: > 0 }) when defaultValue == configuredValue => - $"[dim] [[Default/Configured: {defaultValue.EscapeMarkup()}]][/]", + $"[dim] | [/][dim green][[✔ Default/Configured: {defaultValue.EscapeMarkup()}]][/]", ({ Length: > 0 }, { Length: > 0 }) => - $"[dim] [[Default: {defaultValue.EscapeMarkup()}]][/][dim][[Configured: {configuredValue.EscapeMarkup()}]][/]", - ({ Length: > 0 }, { Length: 0 }) => $"[dim] [[Default: {defaultValue.EscapeMarkup()}]][/]", - ({ Length: 0 }, { Length: > 0 }) => $"[dim] [[Configured: {configuredValue.EscapeMarkup()}]][/]", - _ => string.Empty, + $"[dim] | [/][dim green][[Default: {defaultValue.EscapeMarkup()}]][/][dim] [[✔ Configured: {configuredValue.EscapeMarkup()}]][/]", + ({ Length: > 0 }, { Length: 0 }) => $"[dim] | [/][dim green][[✔ Default: {defaultValue.EscapeMarkup()}]][/]", + ({ Length: 0 }, { Length: > 0 }) => $"[dim] | [/][dim green][[✔ Configured: {configuredValue.EscapeMarkup()}]][/]", + _ => "[dim] | [/][dim yellow][[⚠ None]][/]", }; var descriptionDisplay = requiredParam.Param.Description is { Length: > 0 } ? $"[dim] | {requiredParam.Param.Description.EscapeMarkup()}[/]" : string.Empty; - var nameDisplay = suppliedDisplay is { Length: > 0 } - ? $"[green]--{requiredParam.Param.ArgName.EscapeMarkup()}[/]" - : $"--{requiredParam.Param.ArgName.EscapeMarkup()}"; + var nameDisplay = $"--{requiredParam.Param.ArgName.EscapeMarkup()}"; nodes.Add((requiredParam.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", - suppliedDisplay is { Length: > 0 })); + defaultValue is { Length: > 0 } || configuredValue is { Length: > 0 })); } - var reqTree = tree.AddNode("[dim bold red]Requires[/]"); + var reqTree = tree.AddNode("[bold red]Requires[/]"); reqTree.AddNodes(nodes .Where(x => !x.IsSupplied) @@ -194,27 +192,25 @@ private void WriteCommand(TargetModel target) var suppliedDisplay = (defaultValue, configuredValue) switch { ({ Length: > 0 }, { Length: > 0 }) when defaultValue == configuredValue => - $"[dim] [[Default/Configured: {defaultValue.EscapeMarkup()}]][/]", + $"[dim] | [/][dim green][[✔ Default/Configured: {defaultValue.EscapeMarkup()}]][/]", ({ Length: > 0 }, { Length: > 0 }) => - $"[dim] [[Default: {defaultValue.EscapeMarkup()}]][/][dim][[Configured: {configuredValue.EscapeMarkup()}]][/]", - ({ Length: > 0 }, { Length: 0 }) => $"[dim] [[Default: {defaultValue.EscapeMarkup()}]][/]", - ({ Length: 0 }, { Length: > 0 }) => $"[dim] [[Configured: {configuredValue.EscapeMarkup()}]][/]", - _ => string.Empty, + $"[dim] | [/][dim green][[Default: {defaultValue.EscapeMarkup()}]][/][dim] [[✔ Configured: {configuredValue.EscapeMarkup()}]][/]", + ({ Length: > 0 }, { Length: 0 }) => $"[dim] | [/][dim green][[✔ Default: {defaultValue.EscapeMarkup()}]][/]", + ({ Length: 0 }, { Length: > 0 }) => $"[dim] | [/][dim green][[✔ Configured: {configuredValue.EscapeMarkup()}]][/]", + _ => "[dim] | [/][dim][[✔ None]][/]", }; var descriptionDisplay = optionalParam.Param.Description is { Length: > 0 } ? $"[dim] | {optionalParam.Param.Description.EscapeMarkup()}[/]" : string.Empty; - var nameDisplay = suppliedDisplay is { Length: > 0 } - ? $"[green]--{optionalParam.Param.ArgName.EscapeMarkup()}[/]" - : $"--{optionalParam.Param.ArgName.EscapeMarkup()}"; + var nameDisplay = $"--{optionalParam.Param.ArgName.EscapeMarkup()}"; nodes.Add((optionalParam.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", - suppliedDisplay is { Length: > 0 })); + defaultValue is { Length: > 0 } || configuredValue is { Length: > 0 })); } - var optTree = tree.AddNode("[dim bold green]Options[/]"); + var optTree = tree.AddNode("[bold green]Options[/]"); optTree.AddNodes(nodes .Where(x => !x.IsSupplied) @@ -229,16 +225,47 @@ private void WriteCommand(TargetModel target) if (secrets.Count > 0) { - var secTree = tree.AddNode("[dim bold purple]Secrets[/]"); + var nodes = new List<(string Name, string Value, bool IsSupplied)>(secrets.Count); foreach (var secret in secrets) { + var defaultValue = secret.Param.DefaultValue ?? string.Empty; + + var configuredValue = config + .GetSection("Params")[secret.Param.ArgName] ?? + string.Empty; + var descriptionDisplay = secret.Param.Description is { Length: > 0 } ? $"[dim] | {secret.Param.Description.EscapeMarkup()}[/]" : string.Empty; - secTree.AddNode($"--{secret.Param.ArgName.EscapeMarkup()}{descriptionDisplay}"); + var suppliedDisplay = (defaultValue, configuredValue) switch + { + ({ Length: > 0 }, { Length: > 0 }) when defaultValue == configuredValue => + "[dim] | [/][dim green][[✔ Default/Configured: ****]][/]", + ({ Length: > 0 }, { Length: > 0 }) => "[dim] | [/][dim green][[Default: ****]][/][dim][[✔ Configured: ****]][/]", + ({ Length: > 0 }, { Length: 0 }) => "[dim] | [/][dim green][[✔ Default: ****]][/]", + ({ Length: 0 }, { Length: > 0 }) => "[dim] | [/][dim green][[✔ Configured: ****]][/]", + _ => string.Empty, + }; + + var nameDisplay = $"--{secret.Param.ArgName.EscapeMarkup()}"; + + nodes.Add((secret.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", + defaultValue is { Length: > 0 } || configuredValue is { Length: > 0 })); } + + var secTree = tree.AddNode("[bold purple]Secrets[/]"); + + secTree.AddNodes(nodes + .Where(x => !x.IsSupplied) + .OrderBy(x => x.Name) + .Select(x => x.Value)); + + secTree.AddNodes(nodes + .Where(x => x.IsSupplied) + .OrderBy(x => x.Name) + .Select(x => x.Value)); } console.Write(tree); From d5d1a13aab3b8d6703a1e18fc25bf454f1fcbbc7 Mon Sep 17 00:00:00 2001 From: Declan Smith Date: Wed, 3 Sep 2025 20:45:42 +1000 Subject: [PATCH 3/4] improvement(help): Update options display and parameter categorization --- DecSm.Atom/Help/HelpService.cs | 72 +++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/DecSm.Atom/Help/HelpService.cs b/DecSm.Atom/Help/HelpService.cs index 2fc514f5..c3a473dc 100644 --- a/DecSm.Atom/Help/HelpService.cs +++ b/DecSm.Atom/Help/HelpService.cs @@ -25,11 +25,12 @@ public void ShowHelp() console.Write(new Markup("[bold]Options[/]\n")); console.WriteLine(); - console.Write(new Markup(" [dim]-h, --help[/] [dim]Show help[/]\n")); - console.Write(new Markup(" [dim]-g, --gen[/] [dim]Generate build script[/]\n")); - console.Write(new Markup(" [dim]-s, --skip[/] [dim]Skip dependency execution[/]\n")); - console.Write(new Markup(" [dim]-hl, --headless[/] [dim]Run in headless mode[/]\n")); - console.Write(new Markup(" [dim]-v, --verbose[/] [dim]Show verbose output[/]\n")); + console.Write(new Markup(" [dim]-h, --help[/] [dim]Show help for entire tool or a single command[/]\n")); + console.Write(new Markup(" [dim]-i, --interactive[/] [dim]Run in interactive mode (prompt for required params)[/]\n")); + console.Write(new Markup(" [dim]-g, --gen[/] [dim]Generate build scripts[/]\n")); + console.Write(new Markup(" [dim]-s, --skip[/] [dim]Skip dependency execution (run only specified commands)[/]\n")); + console.Write(new Markup(" [dim]-hl, --headless[/] [dim]Run in headless mode (no prompts or logins, used in CI)[/]\n")); + console.Write(new Markup(" [dim]-v, --verbose[/] [dim]Show verbose output (extra logging)[/]\n")); console.WriteLine(); var targets = args.HasVerbose @@ -114,33 +115,31 @@ private void WriteCommand(TargetModel target) depTree.AddNode($"[dim]{dependency.Name}[/]"); } - var secrets = target + var requiredParams = target .Params - .Where(x => x.Param.IsSecret) + .Where(x => x is { Param.IsSecret: false, Required: true }) .ToList(); var optionalParams = target .Params - .Except(secrets) - .Where(x => !x.Required) + .Where(x => x is { Param.IsSecret: false, Required: false }) .ToList(); - var requiredParams = target + var secrets = target .Params - .Except(secrets) - .Except(optionalParams) + .Where(x => x is { Param.IsSecret: true }) .ToList(); if (requiredParams.Count > 0) { var nodes = new List<(string Name, string Value, bool IsSupplied)>(requiredParams.Count); - foreach (var requiredParam in requiredParams) + foreach (var param in requiredParams) { - var defaultValue = requiredParam.Param.DefaultValue ?? string.Empty; + var defaultValue = param.Param.DefaultValue ?? string.Empty; var configuredValue = config - .GetSection("Params")[requiredParam.Param.ArgName] ?? + .GetSection("Params")[param.Param.ArgName] ?? string.Empty; var suppliedDisplay = (defaultValue, configuredValue) switch @@ -154,24 +153,24 @@ private void WriteCommand(TargetModel target) _ => "[dim] | [/][dim yellow][[⚠ None]][/]", }; - var descriptionDisplay = requiredParam.Param.Description is { Length: > 0 } - ? $"[dim] | {requiredParam.Param.Description.EscapeMarkup()}[/]" + var descriptionDisplay = param.Param.Description is { Length: > 0 } + ? $"[dim] | {param.Param.Description.EscapeMarkup()}[/]" : string.Empty; - var nameDisplay = $"--{requiredParam.Param.ArgName.EscapeMarkup()}"; + var nameDisplay = $"--{param.Param.ArgName.EscapeMarkup()}"; - nodes.Add((requiredParam.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", + nodes.Add((param.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", defaultValue is { Length: > 0 } || configuredValue is { Length: > 0 })); } - var reqTree = tree.AddNode("[bold red]Requires[/]"); + var requiredParamsTree = tree.AddNode("[bold red]Requires[/]"); - reqTree.AddNodes(nodes + requiredParamsTree.AddNodes(nodes .Where(x => !x.IsSupplied) .OrderBy(x => x.Name) .Select(x => x.Value)); - reqTree.AddNodes(nodes + requiredParamsTree.AddNodes(nodes .Where(x => x.IsSupplied) .OrderBy(x => x.Name) .Select(x => x.Value)); @@ -181,12 +180,12 @@ private void WriteCommand(TargetModel target) { var nodes = new List<(string Name, string Value, bool IsSupplied)>(optionalParams.Count); - foreach (var optionalParam in optionalParams) + foreach (var param in optionalParams) { - var defaultValue = optionalParam.Param.DefaultValue ?? string.Empty; + var defaultValue = param.Param.DefaultValue ?? string.Empty; var configuredValue = config - .GetSection("Params")[optionalParam.Param.ArgName] ?? + .GetSection("Params")[param.Param.ArgName] ?? string.Empty; var suppliedDisplay = (defaultValue, configuredValue) switch @@ -200,24 +199,24 @@ private void WriteCommand(TargetModel target) _ => "[dim] | [/][dim][[✔ None]][/]", }; - var descriptionDisplay = optionalParam.Param.Description is { Length: > 0 } - ? $"[dim] | {optionalParam.Param.Description.EscapeMarkup()}[/]" + var descriptionDisplay = param.Param.Description is { Length: > 0 } + ? $"[dim] | {param.Param.Description.EscapeMarkup()}[/]" : string.Empty; - var nameDisplay = $"--{optionalParam.Param.ArgName.EscapeMarkup()}"; + var nameDisplay = $"--{param.Param.ArgName.EscapeMarkup()}"; - nodes.Add((optionalParam.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", + nodes.Add((param.Param.ArgName, $"{nameDisplay}{suppliedDisplay}{descriptionDisplay}", defaultValue is { Length: > 0 } || configuredValue is { Length: > 0 })); } - var optTree = tree.AddNode("[bold green]Options[/]"); + var optionalParamsTree = tree.AddNode("[bold green]Options[/]"); - optTree.AddNodes(nodes + optionalParamsTree.AddNodes(nodes .Where(x => !x.IsSupplied) .OrderBy(x => x.Name) .Select(x => x.Value)); - optTree.AddNodes(nodes + optionalParamsTree.AddNodes(nodes .Where(x => x.IsSupplied) .OrderBy(x => x.Name) .Select(x => x.Value)); @@ -246,7 +245,8 @@ private void WriteCommand(TargetModel target) ({ Length: > 0 }, { Length: > 0 }) => "[dim] | [/][dim green][[Default: ****]][/][dim][[✔ Configured: ****]][/]", ({ Length: > 0 }, { Length: 0 }) => "[dim] | [/][dim green][[✔ Default: ****]][/]", ({ Length: 0 }, { Length: > 0 }) => "[dim] | [/][dim green][[✔ Configured: ****]][/]", - _ => string.Empty, + _ when secret.Required => "[dim] | [/][dim yellow][[⚠ None]][/]", + _ => "[dim] | [/][dim][[✔ None]][/]", }; var nameDisplay = $"--{secret.Param.ArgName.EscapeMarkup()}"; @@ -255,14 +255,14 @@ private void WriteCommand(TargetModel target) defaultValue is { Length: > 0 } || configuredValue is { Length: > 0 })); } - var secTree = tree.AddNode("[bold purple]Secrets[/]"); + var secretsTree = tree.AddNode("[bold purple]Secrets[/]"); - secTree.AddNodes(nodes + secretsTree.AddNodes(nodes .Where(x => !x.IsSupplied) .OrderBy(x => x.Name) .Select(x => x.Value)); - secTree.AddNodes(nodes + secretsTree.AddNodes(nodes .Where(x => x.IsSupplied) .OrderBy(x => x.Name) .Select(x => x.Value)); From 1a6834261ec40f399b637ed002725e7a2fc2c35b Mon Sep 17 00:00:00 2001 From: Declan Smith Date: Wed, 3 Sep 2025 20:55:51 +1000 Subject: [PATCH 4/4] fix(tests): Fixed expected test results --- ..._Displays_DefaultConsoleMessage.verified.txt | 17 +++++++++-------- ..._Displays_DefaultConsoleMessage.verified.txt | 11 ++++++----- ..._Displays_DefaultConsoleMessage.verified.txt | 11 ++++++----- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt index 24d39558..061127f5 100644 --- a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt +++ b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.ConsoleBuildDefinition_Displays_DefaultConsoleMessage.verified.txt @@ -6,11 +6,12 @@ atom [command/s] [parameters] [options] Options - -h, --help Show help - -g, --gen Generate build script - -s, --skip Skip dependency execution - -hl, --headless Run in headless mode - -v, --verbose Show verbose output + -h, --help Show help for entire tool or a single command + -i, --interactive Run in interactive mode (prompt for required params) + -g, --gen Generate build scripts + -s, --skip Skip dependency execution (run only specified commands) + -hl, --headless Run in headless mode (no prompts or logins, used in CI) + -v, --verbose Show verbose output (extra logging) Atom Commands @@ -20,8 +21,8 @@ Project Commands ConsoleTarget | Console target ├── Requires -│ ├── --required-param | Required param -│ └── --default-param [Default: default-value] | Default param +│ ├── --required-param | [⚠ None] | Required param +│ └── --default-param | [✔ Default: default-value] | Default param └── Secrets - └── --secret-param | Secret param + └── --secret-param | [⚠ None] | Secret param diff --git a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.DefaultBuildDefinition_Displays_DefaultConsoleMessage.verified.txt b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.DefaultBuildDefinition_Displays_DefaultConsoleMessage.verified.txt index d1d687cc..4c6a3618 100644 --- a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.DefaultBuildDefinition_Displays_DefaultConsoleMessage.verified.txt +++ b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.DefaultBuildDefinition_Displays_DefaultConsoleMessage.verified.txt @@ -6,11 +6,12 @@ atom [command/s] [parameters] [options] Options - -h, --help Show help - -g, --gen Generate build script - -s, --skip Skip dependency execution - -hl, --headless Run in headless mode - -v, --verbose Show verbose output + -h, --help Show help for entire tool or a single command + -i, --interactive Run in interactive mode (prompt for required params) + -g, --gen Generate build scripts + -s, --skip Skip dependency execution (run only specified commands) + -hl, --headless Run in headless mode (no prompts or logins, used in CI) + -v, --verbose Show verbose output (extra logging) Atom Commands diff --git a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.MinimalBuildDefinition_Displays_DefaultConsoleMessage.verified.txt b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.MinimalBuildDefinition_Displays_DefaultConsoleMessage.verified.txt index 5c7120bc..3a4e2d44 100644 --- a/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.MinimalBuildDefinition_Displays_DefaultConsoleMessage.verified.txt +++ b/DecSm.Atom.Tests/BuildTests/Console/ConsoleTests.MinimalBuildDefinition_Displays_DefaultConsoleMessage.verified.txt @@ -6,9 +6,10 @@ atom [command/s] [parameters] [options] Options - -h, --help Show help - -g, --gen Generate build script - -s, --skip Skip dependency execution - -hl, --headless Run in headless mode - -v, --verbose Show verbose output + -h, --help Show help for entire tool or a single command + -i, --interactive Run in interactive mode (prompt for required params) + -g, --gen Generate build scripts + -s, --skip Skip dependency execution (run only specified commands) + -hl, --headless Run in headless mode (no prompts or logins, used in CI) + -v, --verbose Show verbose output (extra logging)