Deal with environment variable casing in a more versatile way

This commit is contained in:
Tyrrrz
2022-12-13 03:18:20 +02:00
parent 6541ce568d
commit d0ad3bc45d

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks; using System.Threading.Tasks;
using CliFx.Exceptions; using CliFx.Exceptions;
using CliFx.Formatting; using CliFx.Formatting;
@@ -216,11 +217,13 @@ public class CliApplication
/// </remarks> /// </remarks>
public async ValueTask<int> RunAsync(IReadOnlyList<string> commandLineArguments) => await RunAsync( public async ValueTask<int> RunAsync(IReadOnlyList<string> commandLineArguments) => await RunAsync(
commandLineArguments, commandLineArguments,
// Use case-sensitive comparison because environment variables are
// case-sensitive on Linux and macOS (but not on Windows).
Environment Environment
.GetEnvironmentVariables() .GetEnvironmentVariables()
.ToDictionary<string, string>(StringComparer.Ordinal) .ToDictionary<string, string>(
RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
? StringComparer.OrdinalIgnoreCase
: StringComparer.Ordinal
)
); );
/// <summary> /// <summary>