virtual protected void ShowHelp()
{
var CurrentAssembly = Assembly.GetEntryAssembly();
var VersionInfo = FileVersionInfo.GetVersionInfo(CurrentAssembly.Location);
Console.WriteLine(
"{0} - {1} - {2} - {3} - {4}",
VersionInfo.FileDescription,
String.Join(".", VersionInfo.FileVersion.Split('.').Take(2)),
VersionInfo.Comments,
VersionInfo.CompanyName,
VersionInfo.LegalCopyright
);
Console.WriteLine();
Console.WriteLine("Commands:");
foreach (var CommandEntry in CommandEntries)
{
Console.Write(" ");
Console.Write("{0}", CommandEntry.Aliases.Take(1).ToStringArray(", "));
if (CommandEntry.MethodInfo != null)
{
if (CommandEntry.MethodInfo.GetParameters().Length > 0)
{
Console.Write(" <{0}>", CommandEntry.MethodInfo.GetParameters().Select(Item =>
{
string Ret = Item.Name;
if (Item.IsOptional) Ret = "[" + Ret + "]";
return Ret;
}).ToStringArray(", "));
}
}
if (CommandEntry.Values.Length > 0)
{
Console.Write(" [{0}]", CommandEntry.Values.ToStringArray("|"));
}
Console.Write(" - ");
Console.Write("{0}", CommandEntry.Description);
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Examples:");
foreach (var CommandAttribute in CommandEntries)
{
foreach (var Example in CommandAttribute.Examples)
{
Console.WriteLine(" {0}.exe {1}", CurrentAssembly.GetName().Name, Example);
}
}
}