From 7a1281692e406f54b0b8c9d6b5a5c92415df787e Mon Sep 17 00:00:00 2001 From: Polianin Nikita Date: Tue, 28 May 2024 06:51:40 +0300 Subject: [PATCH] fix: it is correct to delete comments --- Endpoint/Configuration/EnvironmentManager.cs | 22 +++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Endpoint/Configuration/EnvironmentManager.cs b/Endpoint/Configuration/EnvironmentManager.cs index cc2b201..c21d59e 100644 --- a/Endpoint/Configuration/EnvironmentManager.cs +++ b/Endpoint/Configuration/EnvironmentManager.cs @@ -5,20 +5,32 @@ namespace Mirea.Api.Endpoint.Configuration; internal static class EnvironmentManager { - public static void LoadEnvironment(string filePath) + public static void LoadEnvironment(string envFile) { - if (!File.Exists(filePath)) return; + if (!File.Exists(envFile)) return; - foreach (var line in File.ReadAllLines(filePath)) + foreach (var line in File.ReadAllLines(envFile)) { - var parts = line.Split( + if (string.IsNullOrEmpty(line)) continue; + + var commentIndex = line.IndexOf('#', StringComparison.Ordinal); + + string arg = line; + + if (commentIndex != -1) + arg = arg.Remove(commentIndex, arg.Length - commentIndex); + + var parts = arg.Split( '=', StringSplitOptions.RemoveEmptyEntries); + if (parts.Length > 2) + parts = [parts[0], string.Join("=", parts[1..])]; + if (parts.Length != 2) continue; - Environment.SetEnvironmentVariable(parts[0].Trim(), parts[1][..(parts[1].Contains('#') ? parts[1].IndexOf('#') : parts[1].Length)].Trim()); + Environment.SetEnvironmentVariable(parts[0].Trim(), parts[1].Trim()); } } } \ No newline at end of file