JsonCommandLine 1.0.0
dotnet add package JsonCommandLine --version 1.0.0
NuGet\Install-Package JsonCommandLine -Version 1.0.0
<PackageReference Include="JsonCommandLine" Version="1.0.0" />
paket add JsonCommandLine --version 1.0.0
#r "nuget: JsonCommandLine, 1.0.0"
// Install JsonCommandLine as a Cake Addin #addin nuget:?package=JsonCommandLine&version=1.0.0 // Install JsonCommandLine as a Cake Tool #tool nuget:?package=JsonCommandLine&version=1.0.0
<div align="center"> <h1>JsonCommandLine</h1> </div>
Provides a simple and easy API to pass JSON command line arguments. and yes, it can parse arguments which are generated like so too!
JsonCommandLine library works little bit differently compared to other CommandLine parsers.
Every argument must have a base Command
keyword. It can have multiple parameters.
Command keyword is used to identify the argument and the parameters are used to pass values with reference to command keyword.
Parameters
are stored in Dictionary<string,string>()
while BaseArgument
is a single string
Sample usage
static void Main(string[] args) {
// parsing args
using (CommandLineParser parser = new CommandLineParser(Environment.CommandLine)) {
// check if this args contain values are generated by JsonCommandLine
// if its not, we can't parse it
if (!parser.IsJsonType) {
return;
}
// parses the arguments
var arguments = parser.Parse();
if (arguments.ArgumentsExist) {
foreach(var arg in arguments.ArgumentCollection) {
// the base command
Console.WriteLine(arg.BaseCommand);
foreach(var param in arg.Parameters) {
// parameters of the above base command
Console.WriteLine($"{param.Key} -> {param.Value}");
}
}
}
}
// generating args
// initiate an argument with base command
CommandLineArgument argument = new CommandLineArgument("update");
// add parameters to the base command
argument.TryAddParameter("enableTrace", "false");
argument.TryAddParameter("generateBackup", "true");
// generate builder to chain multiple arguments into single instance
argument.GenerateArgumentBuilder()
// add another argument
.Add(new CommandLineArgument("restart", new Dictionary<string, string>() {
{"path", "foo/bar/word.exe" }
}))
// maybe add another ?
.Add(new CommandLineArgument("shutdownTimed", new Dictionary<string, string>() {
{"delaySeconds", "10" }
}))
// either build as Arguments object which contains all chained command line arguments
// .BuildAsArgument();
// or
// as resultant command line argument string which will be passed to the next process as args.
// .Build();
.Build()
// we call AsArgument() on Arguments object to turn the chained arguments into resultant args string
// above BuildAsArgument() function does the same, just that it directly converts it to string args.
.AsArgument();
}
- Dependencies
- Newtonsoft.Json (>= 12.0.3)
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 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- Newtonsoft.Json (>= 12.0.3)
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 |
---|---|---|
1.0.0 | 535 | 8/9/2020 |