MichelMichels.CliSharp
2.0.0
Prefix Reserved
dotnet add package MichelMichels.CliSharp --version 2.0.0
NuGet\Install-Package MichelMichels.CliSharp -Version 2.0.0
<PackageReference Include="MichelMichels.CliSharp" Version="2.0.0" />
paket add MichelMichels.CliSharp --version 2.0.0
#r "nuget: MichelMichels.CliSharp, 2.0.0"
// Install MichelMichels.CliSharp as a Cake Addin #addin nuget:?package=MichelMichels.CliSharp&version=2.0.0 // Install MichelMichels.CliSharp as a Cake Tool #tool nuget:?package=MichelMichels.CliSharp&version=2.0.0
CliSharp 💻
This project contains a C# library to easily execute external command line tools on Windows OS.
Table of contents
Getting Started
Clone the repository or get the NuGet package from NuGet.org.
Example
The API is implemented with a fluent design and starts with a static method call on the Cli
class.
using MichelMichels.CliSharp.Core;
using MichelMichels.CliSharp.Extensions;
(...)
await Cli
.SetProgram("notepad.exe")
.SetTimeout(TimeSpan.FromSeconds(1))
.AddSwitch(...)
(...)
.AddConditionalSwitch(...)
(...)
.Execute()
.Wait();
(...)
.SetProgram(...)
The SetProgram
method sets the executable's path.
.SetTimeout(...)
The SetTimeout
method adds a timeout for when to kill the process and return to the original thread.
AddSwitch(...)
The .AddSwitch(...)
method accepts CommandLineSwitch
-objects or string
-objects as arguments to create a switch.
Possible switch types are:
- CommandLineSwitch - e.g. "/help"
- CommandLineSwitch<T> - e.g. "/output test.txt"
- CommandLineSwitchPrefix<T> - e.g. "/drive label=Test", in which "label" is the prefix
AddConditionalSwitch(...)
The .AddConditionalSwitch
method does the same as the AddSwitch
method, but it's possible to add a boolean condition as argument. This can come in handy when using variable parameters.
.Execute()
The Execute
method executes the command and will throw an ExitCodeException
if the returned ExitCode
isn`t 0.
.Wait()
The Wait
method enables await
and waits for the timeout or program to complete.
Using enums
Using enums for CommandLineSwitch values is supported. The library will use the enum name as a string or you can use the attribute ParameterName
from CliSharp.Attributes
in your enum to override the value.
enum TestValue
{
[ParameterName("r")]
Red,
[ParameterName("g")]
Green,
[ParameterName("b")]
Blue
}
Running the tests
There is a MsTest library included MichelMichels.CliSharpTests
which can be run with the Test Explorer in Visual Studio.
Authors
- Michel Michels - Initial work - MichelMichels
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License.
Acknowledgments
- Inspired by CommandLineParser
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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. |
-
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.
Version | Downloads | Last updated |
---|---|---|
2.0.0 | 121 | 5/26/2024 |
- Release 2.0.0
- Breaking namespace change to MichelMichels.CliSharp
- Update to .NET 8