summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs')
-rw-r--r--src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs b/src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs
deleted file mode 100644
index fe27fe2f..00000000
--- a/src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using Microsoft.Extensions.Configuration;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-
-namespace StardewModdingAPI.Web.Framework
-{
- /// <summary>Reads configuration values from the AWS Beanstalk environment properties file (if present).</summary>
- /// <remarks>This is a workaround for AWS Beanstalk injection not working with .NET Core apps.</remarks>
- internal class BeanstalkEnvPropsConfigProvider : ConfigurationProvider, IConfigurationSource
- {
- /*********
- ** Fields
- *********/
- /// <summary>The absolute path to the container configuration file on an Amazon EC2 instance.</summary>
- private const string ContainerConfigPath = @"C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration";
-
-
- /*********
- ** Public methods
- *********/
- /// <summary>Build the configuration provider for this source.</summary>
- /// <param name="builder">The configuration builder.</param>
- public IConfigurationProvider Build(IConfigurationBuilder builder)
- {
- return new BeanstalkEnvPropsConfigProvider();
- }
-
- /// <summary>Load the environment properties.</summary>
- public override void Load()
- {
- this.Data = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
-
- // get Beanstalk config file
- FileInfo file = new FileInfo(BeanstalkEnvPropsConfigProvider.ContainerConfigPath);
- if (!file.Exists)
- return;
-
- // parse JSON
- JObject jsonRoot = (JObject)JsonConvert.DeserializeObject(File.ReadAllText(file.FullName));
- if (jsonRoot["iis"]?["env"] is JArray jsonProps)
- {
- foreach (string prop in jsonProps.Values<string>())
- {
- string[] parts = prop.Split('=', 2); // key=value
- if (parts.Length == 2)
- this.Data[parts[0]] = parts[1];
- }
- }
- }
- }
-}