mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.5 KiB
45 lines
1.5 KiB
using System.Text; |
|
using CliWrap; |
|
using CliWrap.Buffered; |
|
using ErsatzTV.Core.Health; |
|
|
|
namespace ErsatzTV.Infrastructure.Health.Checks; |
|
|
|
public abstract class BaseHealthCheck |
|
{ |
|
public abstract string Title { get; } |
|
|
|
protected HealthCheckResult Result(HealthCheckStatus status, string message) => |
|
new(Title, status, message, None); |
|
|
|
protected HealthCheckResult NotApplicableResult() => |
|
new(Title, HealthCheckStatus.NotApplicable, string.Empty, None); |
|
|
|
protected HealthCheckResult OkResult() => |
|
new(Title, HealthCheckStatus.Pass, string.Empty, None); |
|
|
|
protected HealthCheckResult FailResult(string message) => |
|
new(Title, HealthCheckStatus.Fail, message, None); |
|
|
|
protected HealthCheckResult WarningResult(string message) => |
|
new(Title, HealthCheckStatus.Warning, message, None); |
|
|
|
protected HealthCheckResult WarningResult(string message, string link) => |
|
new(Title, HealthCheckStatus.Warning, message, link); |
|
|
|
protected HealthCheckResult InfoResult(string message) => |
|
new(Title, HealthCheckStatus.Info, message, None); |
|
|
|
protected static async Task<string> GetProcessOutput( |
|
string path, |
|
IEnumerable<string> arguments, |
|
CancellationToken cancellationToken) |
|
{ |
|
BufferedCommandResult result = await Cli.Wrap(path) |
|
.WithArguments(arguments) |
|
.WithValidation(CommandResultValidation.None) |
|
.ExecuteBufferedAsync(Encoding.UTF8, cancellationToken); |
|
|
|
return result.StandardOutput; |
|
} |
|
}
|
|
|