// Copyright (c) The Geekeey Authors // SPDX-License-Identifier: EUPL-1.2 using Spectre.Console.Cli; internal sealed class EnvironmentCommand : AsyncOutputCommand { public sealed class Settings : OutputCommandSettings { [CommandArgument(0, "")] public string[] Variables { get; init; } = []; } public override async Task 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; } }