Files
CliFx/CliFx/Domain/CommandOptionInput.cs
Alexey Golub 4732166f5f Refactor
2020-05-16 21:54:16 +03:00

51 lines
1.2 KiB
C#

using System.Collections.Generic;
using System.Text;
using CliFx.Internal;
namespace CliFx.Domain
{
internal class CommandOptionInput
{
public string Alias { get; }
public string RawAlias => Alias.Length > 1
? $"--{Alias}"
: $"-{Alias}";
public IReadOnlyList<string> Values { get; }
public bool IsHelpOption => CommandOptionSchema.HelpOption.MatchesNameOrShortName(Alias);
public bool IsVersionOption => CommandOptionSchema.VersionOption.MatchesNameOrShortName(Alias);
public CommandOptionInput(string alias, IReadOnlyList<string> values)
{
Alias = alias;
Values = values;
}
public override string ToString()
{
var buffer = new StringBuilder();
buffer.Append(RawAlias);
foreach (var value in Values)
{
buffer.AppendIfNotEmpty(' ');
var isEscaped = value.Contains(" ");
if (isEscaped)
buffer.Append('"');
buffer.Append(value);
if (isEscaped)
buffer.Append('"');
}
return buffer.ToString();
}
}
}