Skip to content

A very simple c# command line arguments Parser, include the nuget package, add to your program and you are done...

License

Notifications You must be signed in to change notification settings

FFMG/myoddweb.commandlineparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Myoddweb.CommandlineParser Release

A very simple c# command line arguments Parser

What it does

  • Very simple command line parser for c#
  • Simple to import/install
  • Simple to use
  • You can create optional parameters
  • You can create help output.

Installing

Nuget

NuGet Status NuGet Count

Package manager

Install-Package MyOddWeb.CommandlineParser

CLI

.NET

dotnet add package MyOddWeb.CommandlineParser

Packet

packet add MyOddWeb.CommandlineParser

Example

Lets say that we have a application that has command line options to install and run as a console

  using myoddweb.commandlineparser;
  using myoddweb.commandlineparser.Rules;

  private void Bar()
  {
    ...
    var arguments = new CommandlineParser(args, new CommandlineArgumentRules
      {
        new HelpCommandlineArgumentRule( new []{"help", "h"} ) },
        new OptionalCommandlineArgumentRule( "config",  "config.json" ),
        new OptionalCommandlineArgumentRule( "install" ),
        new OptionalCommandlineArgumentRule( "console" ),
        new RequiredCommandlineArgumentRule( "name" )
      });
    ...
  }

We can then check if we are running as a console

  ...
  if (arguments.IsSet("console"))
  {
    InvokeActionInstall();
    return;
  }
  ...

We can also call the config value as we know it exists... (we have a default value)

  ...
  var config = _arguments["config"];
  ...

We can also get a default value directly

For example, in the example below, we will either get the number that was passed, (example.exe --a 32), or the default value.

The value itself will be an integer, as this is what we expect...

  ...
  var theGalaxy = parser.Get<int>("a", 42)
  ...

The argument does not have to have a value, for example you could have example.exe --a --b

In that case you would simply default

  ...
  var arguments = new CommandlineParser(args, null );
  ...

What if you want a different leading pattern ...? Something like example.exe -a -b

Simply pass it as a third argument ...

  ...
  var arguments = new CommandlineParser(args, null, "-" );
  ...

About

A very simple c# command line arguments Parser, include the nuget package, add to your program and you are done...

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published