Skip to content

Good-man/Argument-Parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Argument-Parser


Note: Argument-Parser is in alpha and subject to breaking changes!


Argument-Parser is a .NET library for parsing command line arguments.

Getting Started

To get started, clone or download the source and import the ArgumentParser namespace.

Argument-Parser can be used declaratively through attributes or fluently through the fluent API.

Fluent Usage

class Options
{
    public string StringOption { get; set; }
    public bool BooleanOption { get; set; }
    public string StringValue { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // cmd.exe --option "test option"

        var parser = new Parser<Options>();

        parser.SetupOption(o => o.StringOption)
            .As('o', "option")
            .IsRequired();

        parser.SetupOption(o => o.BooleanOption)
            .As('f', "flag")
            .SetDefault(true);

        parser.SetupValue(v => v.StringValue)
            .As(0)
            .SetDefault("test value");

        var result = parser.Parse(args);

        var options = result.Options;
        Debug.Assert(options.StringOption == "test option");
        Debug.Assert(options.BooleanOption == true);
        Debug.Assert(options.StringValue == "test value");
    }
}

Declarative Usage

class Options
{
    [Option('o', "option", Required = true)]
    public string StringOption { get; set; }

    [Option('f', "flag", DefaultValue = true)]
    public bool BooleanOption { get; set; }

    [Value(0, DefaultValue = "test value")]
    public string StringValue { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // cmd.exe --option "test option"

        var parser = new Parser<Options>();

        var result = parser.Parse(args);

        var options = result.Options;
        Debug.Assert(options.StringOption == "test option");
        Debug.Assert(options.BooleanOption == true);
        Debug.Assert(options.StringValue == "test value");
    }
}

Supported Syntax
[-|--|/][name|letter][toggle][=|:| ][value]

See the Supported Syntax wiki page for more detail.

About

Argument-Parser is a .NET library for parsing command line arguments.

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages