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