build: initial project release
Some checks failed
default / dotnet default workflow (push) Failing after 30s

This commit is contained in:
Louis Seubert 2026-01-20 22:41:16 +01:00
commit 8f91cee8a3
Signed by: louis9902
GPG key ID: 4B9DB28F826553BD
59 changed files with 4764 additions and 0 deletions

49
README.md Normal file
View file

@ -0,0 +1,49 @@
# `Geekeey.Extensions.Process`
Process is a .NET library for interacting with external command-line interfaces. It provides a convenient model for
launching processes, redirecting input and output streams, awaiting completion, handling cancellation, and more.
## Features
- **Input and Output redirection:** flexible piping model, that allows to redirect the process's streams.
- **Immutability:** The `Command` object is immutable, ensuring thread safely and allowing sharing of a base
configuration.
## Getting Started
### Install the NuGet package:
```
dotnet add package Geekeey.Extensions.Process
```
You may need to add our NuGet Feed to your `nuget.config` this can be done by adding the following lines
```xml
<packageSources>
<add key="geekeey" value="https://git.geekeey.de/api/packages/geekeey/nuget/index.json" />
</packageSources>
```
### Usage
```csharp
public static Task<int> Main()
{
var stdout = new StringBuilder();
var cmd = new Command("git").WithArguments(["config", "--get", "user.name"]) | stdout;
await cmd.ExecuteAsync();
Console.WriteLine(stdout.ToString());
return 0;
}
```
```csharp
public static Task<int> Main()
{
var cmd = new Command("cat").WithArguments(["file.txt"]) | new Command("wc");
await cmd.ExecuteAsync();
Console.WriteLine(stdout.ToString());
}
```