29 lines
No EOL
764 B
C#
29 lines
No EOL
764 B
C#
// Copyright (c) The Geekeey Authors
|
|
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
using Spectre.Console.Cli;
|
|
|
|
internal sealed class EnvironmentCommand : AsyncOutputCommand<EnvironmentCommand.Settings>
|
|
{
|
|
public sealed class Settings : OutputCommandSettings
|
|
{
|
|
[CommandArgument(0, "<ARGUMENT>")] public string[] Variables { get; init; } = [];
|
|
}
|
|
|
|
public override async Task<int> ExecuteAsync(CommandContext context, Settings settings, CancellationToken cancellationToken)
|
|
{
|
|
using var output = Output.Connect();
|
|
|
|
foreach (var name in settings.Variables)
|
|
{
|
|
var value = Environment.GetEnvironmentVariable(name) ?? string.Empty;
|
|
|
|
foreach (var writer in output.GetWriters(settings.Target))
|
|
{
|
|
await writer.WriteLineAsync(value);
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
} |