mirror of
https://github.com/spectreconsole/spectre.console.git
synced 2025-10-25 15:19:23 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d4b2c88e5 | ||
|
|
3acc90e47c | ||
|
|
88515b7d7f | ||
|
|
c5e11626b5 | ||
|
|
2ead177404 |
@@ -0,0 +1,55 @@
|
||||
Title: Spectre.Console 0.49 released!
|
||||
Description: Bug fixes, bug fixes, bug fixes
|
||||
Published: 2024-04-23
|
||||
Category: Release Notes
|
||||
Excluded: false
|
||||
---
|
||||
|
||||
Version 0.49 of Spectre.Console has been released!
|
||||
|
||||
## New Contributors
|
||||
* @baronfel made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1425
|
||||
* @DarqueWarrior made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1431
|
||||
* @tonycknight made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1435
|
||||
* @caesay made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1439
|
||||
* @jsheely made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1414
|
||||
* @danielcweber made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1456
|
||||
* @martincostello made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1477
|
||||
* @slang25 made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1289
|
||||
* @thomhurst made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1250
|
||||
* @gerardog made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1489
|
||||
* @yenneferofvengerberg made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1503
|
||||
* @BlazeFace made their first contribution in https://github.com/spectreconsole/spectre.console/pull/1509
|
||||
|
||||
## Changes
|
||||
|
||||
* Cleanup line endings by @nils-a in https://github.com/spectreconsole/spectre.console/pull/1381
|
||||
* Added Spectre.Console.Cli to quick-start. by @nils-a in https://github.com/spectreconsole/spectre.console/pull/1413
|
||||
* Fix rendering of ListPrompt for odd pageSizes by @nils-a in https://github.com/spectreconsole/spectre.console/pull/1365
|
||||
* Remove mandelbrot example due to conflicting license by @patriksvensson in https://github.com/spectreconsole/spectre.console/pull/1426
|
||||
* Allow specifying a property to ignore the use of build-time packages for versioning and analysis by @baronfel in https://github.com/spectreconsole/spectre.console/pull/1425
|
||||
* Add the possibility to register multiple interceptors by @nils-a in https://github.com/spectreconsole/spectre.console/pull/1412
|
||||
* Added the ITypeResolver to the ExceptionHandler by @nils-a in https://github.com/spectreconsole/spectre.console/pull/1411
|
||||
* Updated typo in commandApp.md by @DarqueWarrior in https://github.com/spectreconsole/spectre.console/pull/1431
|
||||
* Command with -v displays app version instead of executing the command by @FrankRay78 in https://github.com/spectreconsole/spectre.console/pull/1427
|
||||
* HelpProvider colors should be configurable by @FrankRay78 in https://github.com/spectreconsole/spectre.console/pull/1408
|
||||
* Direct contributors to the current CONTRIBUTING.md by @tonycknight in https://github.com/spectreconsole/spectre.console/pull/1435
|
||||
* Fix deadlock when cancelling prompts by @caesay in https://github.com/spectreconsole/spectre.console/pull/1439
|
||||
* Add progress bar value formatter by @jsheely in https://github.com/spectreconsole/spectre.console/pull/1414
|
||||
* Update dependencies and do some clean-up by @patriksvensson in https://github.com/spectreconsole/spectre.console/pull/1440
|
||||
* Delete [UsesVerify], which has become obsolete through the latest update. by @danielcweber in https://github.com/spectreconsole/spectre.console/pull/1456
|
||||
* Don't erase secret prompt text upon backspace when mask is null by @danielcweber in https://github.com/spectreconsole/spectre.console/pull/1458
|
||||
* Update dependencies to the latest version by @patriksvensson in https://github.com/spectreconsole/spectre.console/pull/1459
|
||||
* Automatically register command settings by @patriksvensson in https://github.com/spectreconsole/spectre.console/pull/1463
|
||||
* Remove [DebuggerDisplay] from Paragraph by @martincostello in https://github.com/spectreconsole/spectre.console/pull/1477
|
||||
* Selection Prompt Search by @slang25 in https://github.com/spectreconsole/spectre.console/pull/1289
|
||||
* Update dependency SixLabors.ImageSharp to v3.1.3 by @renovate in https://github.com/spectreconsole/spectre.console/pull/1486
|
||||
* Positioned Progress Tasks - Before or After Other Tasks by @thomhurst in https://github.com/spectreconsole/spectre.console/pull/1250
|
||||
* Added NoStackTrace to ExceptionFormats by @gerardog in https://github.com/spectreconsole/spectre.console/pull/1489
|
||||
* Pipe character for listing options (issue 1434) by @FrankRay78 in https://github.com/spectreconsole/spectre.console/pull/1498
|
||||
* Improve XmlDoc output by @yenneferofvengerberg in https://github.com/spectreconsole/spectre.console/pull/1503
|
||||
* Revert 71a5d830 to undo flickering regression by @phil-scott-78 in https://github.com/spectreconsole/spectre.console/pull/1504
|
||||
* AddDelegate uses an abstract type when used in a branch by @BlazeFace in https://github.com/spectreconsole/spectre.console/pull/1509
|
||||
* Missing Separator When Headers are Hidden by @BlazeFace in https://github.com/spectreconsole/spectre.console/pull/1513
|
||||
* Expose raw arguments on the command context by @patriksvensson in https://github.com/spectreconsole/spectre.console/pull/1523
|
||||
* Add token representation to remaining arguments by @patriksvensson in https://github.com/spectreconsole/spectre.console/pull/1525
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<div id="container">
|
||||
<div id="console">
|
||||
<div class="line"><span style="color:var(--brightBlack)">╭─</span><span style="color:var(--folder)"></span><span style="background-color:var(--folder);color:var(--black)"> ~/spectre.console</span><span style="color:var(--folder);background-color:var(--dotnet)"></span><span style="background-color:var(--blue)"> .NET 7.0 </span><span style="color:var(--dotnet);background-color:var(--git)"></span><span style="background-color:var(--git);color:var(--background)">  main </span><span style="color:var(--git)"></span></div>
|
||||
<div class="line"><span style="color:var(--brightBlack)">╭─</span><span style="color:var(--folder)"></span><span style="background-color:var(--folder);color:var(--black)"> ~/spectre.console</span><span style="color:var(--folder);background-color:var(--dotnet)"></span><span style="background-color:var(--blue)"> .NET 8.0 </span><span style="color:var(--dotnet);background-color:var(--git)"></span><span style="background-color:var(--git);color:var(--background)">  main </span><span style="color:var(--git)"></span></div>
|
||||
<div class="line"><span style="color:var(--brightBlack)">╰─</span> dotnet run</div>
|
||||
<div class="line"></div>
|
||||
<div class="line">╭────────────────────────────────────────────────────────╮</div>
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
"commands": [
|
||||
"dotnet-example"
|
||||
]
|
||||
},
|
||||
"verify.tool": {
|
||||
"version": "0.6.0",
|
||||
"commands": [
|
||||
"dotnet-verify"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,7 +82,7 @@ public static class ConfiguratorExtensions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the auto-detected version of the application.
|
||||
/// Sets the version of the application.
|
||||
/// </summary>
|
||||
/// <param name="configurator">The configurator.</param>
|
||||
/// <param name="version">The version of application.</param>
|
||||
@@ -98,6 +98,25 @@ public static class ConfiguratorExtensions
|
||||
return configurator;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Uses the version retrieved from the <see cref="AssemblyInformationalVersionAttribute"/>
|
||||
/// as the application's version.
|
||||
/// </summary>
|
||||
/// <param name="configurator">The configurator.</param>
|
||||
/// <returns>A configurator that can be used to configure the application further.</returns>
|
||||
public static IConfigurator UseAssemblyInformationalVersion(this IConfigurator configurator)
|
||||
{
|
||||
if (configurator == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(configurator));
|
||||
}
|
||||
|
||||
configurator.Settings.ApplicationVersion =
|
||||
VersionHelper.GetVersion(Assembly.GetEntryAssembly());
|
||||
|
||||
return configurator;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hides the <c>DEFAULT</c> column that lists default values coming from the
|
||||
/// <see cref="DefaultValueAttribute"/> in the options help text.
|
||||
|
||||
@@ -41,7 +41,7 @@ public class HelpProvider : IHelpProvider
|
||||
public bool Required { get; }
|
||||
public string? Description { get; }
|
||||
|
||||
public HelpArgument(string name, int position, bool required, string? description)
|
||||
private HelpArgument(string name, int position, bool required, string? description)
|
||||
{
|
||||
Name = name;
|
||||
Position = position;
|
||||
@@ -68,7 +68,7 @@ public class HelpProvider : IHelpProvider
|
||||
public string? Description { get; }
|
||||
public object? DefaultValue { get; }
|
||||
|
||||
public HelpOption(string? @short, string? @long, string? @value, bool? valueIsOptional, string? description, object? defaultValue)
|
||||
private HelpOption(string? @short, string? @long, string? @value, bool? valueIsOptional, string? description, object? defaultValue)
|
||||
{
|
||||
Short = @short;
|
||||
Long = @long;
|
||||
@@ -78,17 +78,27 @@ public class HelpProvider : IHelpProvider
|
||||
DefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
public static IReadOnlyList<HelpOption> Get(ICommandInfo? command, HelpProviderResources resources)
|
||||
public static IReadOnlyList<HelpOption> Get(
|
||||
ICommandModel model,
|
||||
ICommandInfo? command,
|
||||
HelpProviderResources resources)
|
||||
{
|
||||
var parameters = new List<HelpOption>();
|
||||
parameters.Add(new HelpOption("h", "help", null, null, resources.PrintHelpDescription, null));
|
||||
var parameters = new List<HelpOption>
|
||||
{
|
||||
new HelpOption("h", "help", null, null, resources.PrintHelpDescription, null),
|
||||
};
|
||||
|
||||
// Version information applies to the entire application
|
||||
// Include the "-v" option in the help when at the root of the command line application
|
||||
// Don't allow the "-v" option if users have specified one or more sub-commands
|
||||
if ((command == null || command?.Parent == null) && !(command?.IsBranch ?? false))
|
||||
if ((command?.Parent == null) && !(command?.IsBranch ?? false))
|
||||
{
|
||||
parameters.Add(new HelpOption("v", "version", null, null, resources.PrintVersionDescription, null));
|
||||
// Only show the version command if there is an
|
||||
// application version set.
|
||||
if (model.ApplicationVersion != null)
|
||||
{
|
||||
parameters.Add(new HelpOption("v", "version", null, null, resources.PrintVersionDescription, null));
|
||||
}
|
||||
}
|
||||
|
||||
parameters.AddRange(command?.Parameters.OfType<ICommandOption>().Where(o => !o.IsHidden).Select(o =>
|
||||
@@ -101,11 +111,6 @@ public class HelpProvider : IHelpProvider
|
||||
}
|
||||
}
|
||||
|
||||
internal Composer NewComposer()
|
||||
{
|
||||
return new Composer(RenderMarkupInline);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="HelpProvider"/> class.
|
||||
/// </summary>
|
||||
@@ -383,7 +388,7 @@ public class HelpProvider : IHelpProvider
|
||||
public virtual IEnumerable<IRenderable> GetOptions(ICommandModel model, ICommandInfo? command)
|
||||
{
|
||||
// Collect all options into a single structure.
|
||||
var parameters = HelpOption.Get(command, resources);
|
||||
var parameters = HelpOption.Get(model, command, resources);
|
||||
if (parameters.Count == 0)
|
||||
{
|
||||
return Array.Empty<IRenderable>();
|
||||
@@ -420,7 +425,7 @@ public class HelpProvider : IHelpProvider
|
||||
|
||||
if (defaultValueColumn)
|
||||
{
|
||||
columns.Add(GetOptionDefaultValue(option.DefaultValue));
|
||||
columns.Add(GetDefaultValueForOption(option.DefaultValue));
|
||||
}
|
||||
|
||||
columns.Add(NewComposer().Text(option.Description?.TrimEnd('.') ?? " "));
|
||||
@@ -433,60 +438,6 @@ public class HelpProvider : IHelpProvider
|
||||
return result;
|
||||
}
|
||||
|
||||
private IRenderable GetOptionParts(HelpOption option)
|
||||
{
|
||||
var composer = NewComposer();
|
||||
|
||||
if (option.Short != null)
|
||||
{
|
||||
composer.Text("-").Text(option.Short);
|
||||
if (option.Long != null)
|
||||
{
|
||||
composer.Text(", ");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
composer.Text(" ");
|
||||
if (option.Long != null)
|
||||
{
|
||||
composer.Text(" ");
|
||||
}
|
||||
}
|
||||
|
||||
if (option.Long != null)
|
||||
{
|
||||
composer.Text("--").Text(option.Long);
|
||||
}
|
||||
|
||||
if (option.Value != null)
|
||||
{
|
||||
composer.Text(" ");
|
||||
if (option.ValueIsOptional ?? false)
|
||||
{
|
||||
composer.Style(helpStyles?.Options?.OptionalOption ?? Style.Plain, $"[{option.Value}]");
|
||||
}
|
||||
else
|
||||
{
|
||||
composer.Style(helpStyles?.Options?.RequiredOption ?? Style.Plain, $"<{option.Value}>");
|
||||
}
|
||||
}
|
||||
|
||||
return composer;
|
||||
}
|
||||
|
||||
private IRenderable GetOptionDefaultValue(object? defaultValue)
|
||||
{
|
||||
return defaultValue switch
|
||||
{
|
||||
null => NewComposer().Text(" "),
|
||||
"" => NewComposer().Text(" "),
|
||||
Array { Length: 0 } => NewComposer().Text(" "),
|
||||
Array array => NewComposer().Join(", ", array.Cast<object>().Select(o => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, o.ToString() ?? string.Empty))),
|
||||
_ => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, defaultValue?.ToString() ?? string.Empty),
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the commands section of the help information.
|
||||
/// </summary>
|
||||
@@ -556,4 +507,63 @@ public class HelpProvider : IHelpProvider
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
private Composer NewComposer()
|
||||
{
|
||||
return new Composer(RenderMarkupInline);
|
||||
}
|
||||
|
||||
private IRenderable GetOptionParts(HelpOption option)
|
||||
{
|
||||
var composer = NewComposer();
|
||||
|
||||
if (option.Short != null)
|
||||
{
|
||||
composer.Text("-").Text(option.Short);
|
||||
if (option.Long != null)
|
||||
{
|
||||
composer.Text(", ");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
composer.Text(" ");
|
||||
if (option.Long != null)
|
||||
{
|
||||
composer.Text(" ");
|
||||
}
|
||||
}
|
||||
|
||||
if (option.Long != null)
|
||||
{
|
||||
composer.Text("--").Text(option.Long);
|
||||
}
|
||||
|
||||
if (option.Value != null)
|
||||
{
|
||||
composer.Text(" ");
|
||||
if (option.ValueIsOptional ?? false)
|
||||
{
|
||||
composer.Style(helpStyles?.Options?.OptionalOption ?? Style.Plain, $"[{option.Value}]");
|
||||
}
|
||||
else
|
||||
{
|
||||
composer.Style(helpStyles?.Options?.RequiredOption ?? Style.Plain, $"<{option.Value}>");
|
||||
}
|
||||
}
|
||||
|
||||
return composer;
|
||||
}
|
||||
|
||||
private Composer GetDefaultValueForOption(object? defaultValue)
|
||||
{
|
||||
return defaultValue switch
|
||||
{
|
||||
null => NewComposer().Text(" "),
|
||||
"" => NewComposer().Text(" "),
|
||||
Array { Length: 0 } => NewComposer().Text(" "),
|
||||
Array array => NewComposer().Join(", ", array.Cast<object>().Select(o => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, o.ToString() ?? string.Empty))),
|
||||
_ => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, defaultValue?.ToString() ?? string.Empty),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -9,4 +9,9 @@ public interface ICommandModel : ICommandContainer
|
||||
/// Gets the name of the application.
|
||||
/// </summary>
|
||||
string ApplicationName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the version of the application.
|
||||
/// </summary>
|
||||
string? ApplicationVersion { get; }
|
||||
}
|
||||
|
||||
@@ -39,9 +39,12 @@ internal sealed class CommandExecutor
|
||||
if (firstArgument.Equals("--version", StringComparison.OrdinalIgnoreCase) ||
|
||||
firstArgument.Equals("-v", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var console = configuration.Settings.Console.GetConsole();
|
||||
console.WriteLine(ResolveApplicationVersion(configuration));
|
||||
return 0;
|
||||
if (configuration.Settings.ApplicationVersion != null)
|
||||
{
|
||||
var console = configuration.Settings.Console.GetConsole();
|
||||
console.MarkupLine(configuration.Settings.ApplicationVersion);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -126,13 +129,6 @@ internal sealed class CommandExecutor
|
||||
return parsedResult;
|
||||
}
|
||||
|
||||
private static string ResolveApplicationVersion(IConfiguration configuration)
|
||||
{
|
||||
return
|
||||
configuration.Settings.ApplicationVersion ?? // potential override
|
||||
VersionHelper.GetVersion(Assembly.GetEntryAssembly());
|
||||
}
|
||||
|
||||
private static async Task<int> Execute(
|
||||
CommandTree leaf,
|
||||
CommandTree tree,
|
||||
|
||||
@@ -3,6 +3,7 @@ namespace Spectre.Console.Cli;
|
||||
internal sealed class CommandModel : ICommandContainer, ICommandModel
|
||||
{
|
||||
public string? ApplicationName { get; }
|
||||
public string? ApplicationVersion { get; }
|
||||
public ParsingMode ParsingMode { get; }
|
||||
public IList<CommandInfo> Commands { get; }
|
||||
public IList<string[]> Examples { get; }
|
||||
@@ -20,9 +21,10 @@ internal sealed class CommandModel : ICommandContainer, ICommandModel
|
||||
IEnumerable<string[]> examples)
|
||||
{
|
||||
ApplicationName = settings.ApplicationName;
|
||||
ApplicationVersion = settings.ApplicationVersion;
|
||||
ParsingMode = settings.ParsingMode;
|
||||
Commands = new List<CommandInfo>(commands ?? Array.Empty<CommandInfo>());
|
||||
Examples = new List<string[]>(examples ?? Array.Empty<string[]>());
|
||||
Commands = new List<CommandInfo>(commands);
|
||||
Examples = new List<string[]>(examples);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp <FOO> <BAR> <BAZ> <CORGI> [QUX] [OPTIONS]
|
||||
|
||||
ARGUMENTS:
|
||||
@@ -9,5 +9,4 @@ ARGUMENTS:
|
||||
[QUX]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
@@ -1,4 +1,4 @@
|
||||
--------------------------------------
|
||||
--------------------------------------
|
||||
--- CUSTOM HELP PROVIDER ---
|
||||
--------------------------------------
|
||||
|
||||
@@ -6,8 +6,7 @@ USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--------------------------------------
|
||||
--------------------------------------
|
||||
--- CUSTOM HELP PROVIDER ---
|
||||
--------------------------------------
|
||||
|
||||
@@ -6,8 +6,7 @@ USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DESCRIPTION:
|
||||
DESCRIPTION:
|
||||
The lion command.
|
||||
|
||||
USAGE:
|
||||
@@ -11,7 +11,6 @@ ARGUMENTS:
|
||||
OPTIONS:
|
||||
DEFAULT
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
--agility <VALUE> 10 The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DESCRIPTION:
|
||||
DESCRIPTION:
|
||||
The dog command.
|
||||
|
||||
USAGE:
|
||||
@@ -18,7 +18,6 @@ ARGUMENTS:
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
-g, --good-boy
|
||||
@@ -1,4 +1,4 @@
|
||||
DESCRIPTION:
|
||||
DESCRIPTION:
|
||||
The lion command.
|
||||
|
||||
USAGE:
|
||||
@@ -11,7 +11,6 @@ ARGUMENTS:
|
||||
OPTIONS:
|
||||
DEFAULT
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
--agility <VALUE> 10 The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BESCHREIBUNG:
|
||||
BESCHREIBUNG:
|
||||
The lion command.
|
||||
|
||||
VERWENDUNG:
|
||||
@@ -14,7 +14,6 @@ ARGUMENTE:
|
||||
OPTIONEN:
|
||||
STANDARDWERT
|
||||
-h, --help Zeigt Hilfe an
|
||||
-v, --version Zeigt Versionsinformationen an
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
--agility <VALUE> 10 The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DESCRIPTION:
|
||||
DESCRIPTION:
|
||||
The lion command.
|
||||
|
||||
USAGE:
|
||||
@@ -14,7 +14,6 @@ ARGUMENTS:
|
||||
OPTIONS:
|
||||
DEFAULT
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
--agility <VALUE> 10 The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DESCRIPTION:
|
||||
DESCRIPTION:
|
||||
The lion command.
|
||||
|
||||
UTILISATION:
|
||||
@@ -14,7 +14,6 @@ ARGUMENTS:
|
||||
OPTIONS:
|
||||
DÉFAUT
|
||||
-h, --help Affiche l'aide
|
||||
-v, --version Affiche la version
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
--agility <VALUE> 10 The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BESKRIVNING:
|
||||
BESKRIVNING:
|
||||
The lion command.
|
||||
|
||||
ANVÄNDING:
|
||||
@@ -14,7 +14,6 @@ ARGUMENT:
|
||||
VAL:
|
||||
STANDARD
|
||||
-h, --help Skriver ut hjälpinformation
|
||||
-v, --version Skriver ut versionsnummer
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
--agility <VALUE> 10 The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[bold]DESCRIPTION:[/]
|
||||
[bold]DESCRIPTION:[/]
|
||||
The lion command.
|
||||
|
||||
[bold]USAGE:[/]
|
||||
@@ -14,7 +14,6 @@ The lion command.
|
||||
[]OPTIONS:[/]
|
||||
[]DEFAULT[/]
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name []<VALUE>[/]
|
||||
--agility []<VALUE>[/] []10[/] The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[yellow]DESCRIPTION:[/]
|
||||
[yellow]DESCRIPTION:[/]
|
||||
The lion command.
|
||||
|
||||
[yellow]USAGE:[/]
|
||||
@@ -14,7 +14,6 @@ The lion command.
|
||||
[yellow]OPTIONS:[/]
|
||||
[lime]DEFAULT[/]
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name [silver]<VALUE>[/]
|
||||
--agility [silver]<VALUE>[/] [bold]10[/] The agility between 0 and 100
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[]DESCRIPTION:[/]
|
||||
[]DESCRIPTION:[/]
|
||||
The lion command.
|
||||
|
||||
[]USAGE:[/]
|
||||
@@ -14,7 +14,6 @@ The lion command.
|
||||
[]OPTIONS:[/]
|
||||
[]DEFAULT[/]
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name []<VALUE>[/]
|
||||
--agility []<VALUE>[/] []10[/] The agility between 0 and 100
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command.
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp <FOO> [OPTIONS]
|
||||
|
||||
ARGUMENTS:
|
||||
<FOO> Dummy argument FOO
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
--baz Dummy option BAZ
|
||||
-h, --help Prints help information
|
||||
--baz Dummy option BAZ
|
||||
@@ -1,9 +1,8 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
bar
|
||||
@@ -0,0 +1,12 @@
|
||||
USAGE:
|
||||
myapp <FOO> <BAR> <BAZ> <CORGI> [QUX] [OPTIONS]
|
||||
|
||||
ARGUMENTS:
|
||||
<FOO>
|
||||
<BAR>
|
||||
<BAZ>
|
||||
<CORGI>
|
||||
[QUX]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
@@ -1,9 +1,8 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DESCRIPTION:
|
||||
DESCRIPTION:
|
||||
The horse command.
|
||||
|
||||
USAGE:
|
||||
@@ -10,7 +10,6 @@ ARGUMENTS:
|
||||
OPTIONS:
|
||||
DEFAULT
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-a, --alive Indicates whether or not the animal is alive
|
||||
-n, --name <VALUE>
|
||||
-d, --day <MON|TUE>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
EXAMPLES:
|
||||
@@ -16,8 +16,7 @@ EXAMPLES:
|
||||
myapp horse --name Spirit
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
EXAMPLES:
|
||||
@@ -9,8 +9,7 @@ EXAMPLES:
|
||||
myapp dog --name Daisy
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
EXAMPLES:
|
||||
@@ -12,8 +12,7 @@ EXAMPLES:
|
||||
myapp horse --name Sugar --IsAlive false
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
EXAMPLES:
|
||||
@@ -16,8 +16,7 @@ EXAMPLES:
|
||||
myapp horse --name Spirit
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
dog <AGE> The dog command
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
EXAMPLES:
|
||||
@@ -9,8 +9,7 @@ EXAMPLES:
|
||||
myapp animal dog --name Daisy
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
animal The animal command
|
||||
@@ -12,8 +12,7 @@ EXAMPLES:
|
||||
myapp animal horse --name Sugar --IsAlive false
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
animal The animal command
|
||||
@@ -1,9 +1,8 @@
|
||||
USAGE:
|
||||
USAGE:
|
||||
myapp [OPTIONS] <COMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
animal The animal command
|
||||
@@ -16,8 +16,7 @@ EXAMPLES:
|
||||
myapp animal horse --name Spirit
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
-h, --help Prints help information
|
||||
|
||||
COMMANDS:
|
||||
animal The animal command
|
||||
@@ -0,0 +1,13 @@
|
||||
USAGE:
|
||||
myapp <FOO> <BAR> <BAZ> <CORGI> [QUX] [OPTIONS]
|
||||
|
||||
ARGUMENTS:
|
||||
<FOO>
|
||||
<BAR>
|
||||
<BAZ>
|
||||
<CORGI>
|
||||
[QUX]
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Prints help information
|
||||
-v, --version Prints version information
|
||||
@@ -950,6 +950,45 @@ public sealed partial class CommandAppTests
|
||||
return Verifier.Verify(result.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("NoVersion")]
|
||||
public Task Should_Not_Include_Application_Version_If_Not_Set()
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.SetDefaultCommand<GenericCommand<ArgumentOrderSettings>>();
|
||||
fixture.Configure(config =>
|
||||
{
|
||||
config.SetApplicationName("myapp");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("--help");
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(result.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Version")]
|
||||
public Task Should_Include_Application_Version_If_Set()
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.SetDefaultCommand<GenericCommand<ArgumentOrderSettings>>();
|
||||
fixture.Configure(config =>
|
||||
{
|
||||
config.SetApplicationName("myapp");
|
||||
config.SetApplicationVersion("0.49.1");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("--help");
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(result.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Hidden_Command_Options")]
|
||||
public Task Should_Not_Show_Hidden_Command_Options()
|
||||
|
||||
@@ -34,6 +34,24 @@ public sealed partial class CommandAppTests
|
||||
result.Output.ShouldBe("1.0");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Should_Not_Display_Version_If_Not_Specified()
|
||||
{
|
||||
// Given
|
||||
var fixture = new CommandAppTester();
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.AddCommand<EmptyCommand>("empty");
|
||||
});
|
||||
|
||||
// When
|
||||
var result = fixture.Run("--version");
|
||||
|
||||
// Then
|
||||
result.ExitCode.ShouldNotBe(0);
|
||||
result.Output.ShouldStartWith("Error: Unexpected option 'version'");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Should_Execute_Command_Not_Output_Application_Version_To_The_Console()
|
||||
{
|
||||
@@ -42,7 +60,6 @@ public sealed partial class CommandAppTests
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
|
||||
configurator.AddCommand<EmptyCommand>("empty");
|
||||
});
|
||||
|
||||
@@ -81,7 +98,6 @@ public sealed partial class CommandAppTests
|
||||
fixture.Configure(configurator =>
|
||||
{
|
||||
configurator.SetApplicationVersion("1.0");
|
||||
|
||||
configurator.AddBranch<EmptyCommandSettings>("branch", branch =>
|
||||
{
|
||||
branch.SetDefaultCommand<EmptyCommand>();
|
||||
|
||||
Reference in New Issue
Block a user