Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 1.26 KB

README.md

File metadata and controls

63 lines (48 loc) · 1.26 KB

UnityOptions

A library to help make command line argument parsing easy


public static void Main(string[] args)
{
    if (!Options.InitAndSetup(args))
        return;

    ...
    Do stuff
    ...
}

[ProgramOptions]
public static class Options
{
    [HelpDetails("This is the first option")]
    public static string SomeValue;

    [HelpDetails("This is the first option")]
    public static string AnotherValue;

    public static void SetToDefaults()
    {
    }

    public static string NameFor(string fieldName)
    {
        return OptionsParser.OptionNameFor(typeof(Options), fieldName);
    }

    public static bool InitAndSetup(string[] args)
    {
        SetToDefaults();

        if (OptionsParser.HelpRequested(args))
        {
            OptionsParser.DisplayHelp(typeof(Program).Assembly, false);
            return false;
        }

        var unknownArgs = OptionsParser.Prepare(args, typeof(Program).Assembly, false).ToList();

        if (unknownArgs.Count > 0)
        {
            Console.WriteLine("Unknown arguments : ");
            foreach (var remain in unknownArgs)
            {
                Console.WriteLine("\t {0}", remain);
            }

            return false;
        }

        ValidateArguments();

        return true;
    }
}