Dirt.Args
1.2.4
dotnet add package Dirt.Args --version 1.2.4
NuGet\Install-Package Dirt.Args -Version 1.2.4
<PackageReference Include="Dirt.Args" Version="1.2.4" />
<PackageVersion Include="Dirt.Args" Version="1.2.4" />
<PackageReference Include="Dirt.Args" />
paket add Dirt.Args --version 1.2.4
#r "nuget: Dirt.Args, 1.2.4"
#:package Dirt.Args@1.2.4
#addin nuget:?package=Dirt.Args&version=1.2.4
#tool nuget:?package=Dirt.Args&version=1.2.4
Dirt.Args
Dirt.Args is a simple library for parsing command line arguments in .NET.
Its goal is to require no configuration and be a step up from using the built-in string[] args parameter in your Main method.
For more advanced scenarios, you should consider using a more feature-rich library.
Specifically, the following features are not supported:
- Displaying usage
- Validation of parameters
- Commands
- Parsing to anything other than strings
- "Loose" arguments (i.e. associating
barwith the--fooflag in--foo bar)
The library does support the following:
- Boolean Flags (e.g.
--foo) - Key-Value Pairs (e.g.
--foo=bar) - Using
--to separate flags from arguments (e.g.--foo -- --bar) - Counting repeated instances of a flag (e.g.
--foo --foo) - Short flags (e.g.
-f) - Multiple values for a single flag (e.g.
--foo=bar --foo=baz)
Usage
var args = new Dirt.Args();
if (args.HasFlag("foo")) {
Console.WriteLine("Foo is set!");
}
The IArgs interface exposes the following methods and properties
bool HasFlag(string flag)- Returns true if the flag was setint GetFlagCount(string flag)- Gets the number of times the flag was setstring GetValueFlag(string flag)- Gets the value of the flag, or null if it was not setIReadOnlyList<string> GetMultiValueFlag(string flag)- Gets the values of the flag, or an empty list if it was not setIReadOnlyList<string> Remaining- Any other arguments that are not flags
The Args class explicitly implements these properties from the IArgsData interface to allow access to the underlying data directly:
IReadOnlyDictionary<string, IFlagData> Flags- A dictionary of all flags that were set and their valuesIReadOnlyDictionary<string, string> ValueFlags- A dictionary of all key-value pairs that were setIReadOnlyDictionary<string, IReadOnlyList<string>> MultiValueFlags- A dictionary of all value flags with all their values
The ValueFlags and MultiValueFlags properties are projections of the data exposed by the Flags property.
The IFlagData interface exposes the following properties:
string Flag- The name of the flagint Count- The number of times the flag was setIReadOnlyList<string> Values- The values associated with the flag. This could be empty.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. 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 is compatible. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net10.0
- No dependencies.
-
net8.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.