ConsoleArgsLite 2.0.0

dotnet add package ConsoleArgsLite --version 2.0.0
                    
NuGet\Install-Package ConsoleArgsLite -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ConsoleArgsLite" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ConsoleArgsLite" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ConsoleArgsLite" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ConsoleArgsLite --version 2.0.0
                    
#r "nuget: ConsoleArgsLite, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=ConsoleArgsLite&version=2.0.0
                    
Install ConsoleArgsLite as a Cake Addin
#tool nuget:?package=ConsoleArgsLite&version=2.0.0
                    
Install ConsoleArgsLite as a Cake Tool

Nuget

ConsoleArgsLite

A simple manager for console arguments.

Usage

Supposing an executable named app.exe:

app.exe Hello World

would translate to:

public void main(string[] args)
{
  ConsoleArgsManagerLite manager = new ConsoleArgsManagerLite();
  manager.AddArgument("output");

  manager.ParseArguments(args);
  string argument = manager.GetValueFromArgument<string>("output");
  Console.WriteLine(argument)
}

//Outputs: Hello World

For named arguments you can provide a console name. This name does not have to include any "--", this will be automatically added by the manager.

app.exe --outFile example.txt

public void main(string[] args)
{
  ConsoleArgsManagerLite manager = new ConsoleArgsManagerLite();
  manager.AddArgument("output", true, "outFile");

  manager.ParseArguments(args);
  string argument = manager.GetValueFromArgument<string>("output");
  Console.WriteLine(argument)
}

//Outputs: example.txt

You can pass a parser that converts from string to a different type, just be carefull to use a value type and trying to retrieve the value of the argument before parsing them.

app.exe --maxValue 100

public void main(string[] args)
{
  ConsoleArgsManagerLite manager = new ConsoleArgsManagerLite();
  manager.AddArgument(
    name: "output",
    required: true,
    parser: (s) => int.Parse(s),
    consoleName: "maxValue"
  );

  manager.ParseArguments(args);
  int argument = manager.GetValueFromArgument<int>("output");//When using value types, be carefull to not call this before parsing the arguments. Or use nullables.
  Console.WriteLine(argument)
}

//Outputs: 100

You can add various arguments, the order is important, especially if you're going to use some that are not required.

app.exe input.mp4 output.mp4 --CRF 30

app.exe input.mp4 output.mp4


public void main(string[] args)
{
  ConsoleArgsManagerLite manager = new ConsoleArgsManagerLite();
  manager.AddArgument("inputFile");
  manager.AddArgument("outputFile");
  manager.AddArgument<int?>(
    name: "crf",
    required: false,
    parser: (s) =>
    {
        if (string.IsNullOrEmpty(s) || string.IsNullOrWhiteSpace(s))
            return null;
        return int.Parse(s);
    },
    consoleName: "consoleName"
  );

  manager.ParseArguments(args);
  string outputFile = manager.GetValueFromArgument<string>("outputFile");
  string inputFile = manager.GetValueFromArgument<string>("inputFile");
  int? crf = manager.GetValueFromArgument<int?>("crf");
  
  Console.WriteLine($"{inputFile}->{outputFile}: {crf ?? ''}");
}

//Outputs: input.mp4->output.mp4: 30
//Outputs: input.mp4->output.mp4: 
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 397 8/24/2021
1.0.0 356 8/24/2021