Skip to content

Commit ec11315

Browse files
JamieMageeCopilot
andcommitted
chore: modernize EnvironmentVariableService
Replace string.Compare(.., true) with StringComparison.OrdinalIgnoreCase. Short-circuit to Environment.GetEnvironmentVariable on Windows, where it is already case-insensitive. Drop #nullable disable on the file. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent bcf8390 commit ec11315

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

src/Microsoft.ComponentDetection.Common/EnvironmentVariableService.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#nullable disable
21
namespace Microsoft.ComponentDetection.Common;
32

43
using System;
@@ -13,14 +12,19 @@ public bool DoesEnvironmentVariableExist(string name)
1312
return this.GetEnvironmentVariable(name) != null;
1413
}
1514

16-
public string GetEnvironmentVariable(string name)
15+
public string? GetEnvironmentVariable(string name)
1716
{
1817
// Environment variables are case-insensitive on Windows, and case-sensitive on
1918
// Linux and MacOS.
2019
// https://docs.microsoft.com/en-us/dotnet/api/system.environment.getenvironmentvariable
20+
if (OperatingSystem.IsWindows())
21+
{
22+
return Environment.GetEnvironmentVariable(name);
23+
}
24+
2125
var caseInsensitiveName = Environment.GetEnvironmentVariables().Keys
2226
.OfType<string>()
23-
.FirstOrDefault(x => string.Compare(x, name, true) == 0);
27+
.FirstOrDefault(x => string.Equals(x, name, StringComparison.OrdinalIgnoreCase));
2428

2529
return caseInsensitiveName != null ? Environment.GetEnvironmentVariable(caseInsensitiveName) : null;
2630
}

src/Microsoft.ComponentDetection.Contracts/IEnvironmentVariableService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public interface IEnvironmentVariableService
1919
/// </summary>
2020
/// <param name="name">Name of the environment variable.</param>
2121
/// <returns>Returns a string of the environment variable value.</returns>
22-
string GetEnvironmentVariable(string name);
22+
string? GetEnvironmentVariable(string name);
2323

2424
/// <summary>
2525
/// Returns the value of an environment variable which is formatted as a delimited list.

0 commit comments

Comments
 (0)