CSharp · Console
using System;
using System.IO;
using System.Linq;
using Maroontress.Cui;
public class Program
{
public static void Main()
{
ParseArgs(["-h"]);
}
private static void PrintUsage(OptionSchema schema, TextWriter output)
{
var usage = new[]
{
"usage: command [Options...] [--] Arguments...",
"",
"Options are:",
};
var messages = usage.Concat(schema.GetHelpMessage());
foreach (var m in messages)
{
output.WriteLine(m);
}
}
public static void ParseArgs(string[] args)
{
var schema = Options.NewSchema()
.Add(
"file",
'f',
"FILE",
"Specify an input file\n"
+ "The FILE can be - for standard input")
.Add("help", 'h', "Show help and exit");
try
{
var setting = schema.Parse(args);
var options = setting.Options;
var arguments = setting.Arguments;
foreach (var o in options)
{
if (o.Name is "help")
{
PrintUsage(schema, Console.Out);
Environment.Exit(0);
}
}
}
catch (OptionParsingException e)
{
var output = Console.Error;
output.WriteLine(e.Message);
PrintUsage(schema, output);
Environment.Exit(1);
}
}
}