diff options
author | vnugent <public@vaughnnugent.com> | 2024-06-16 13:16:18 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-06-16 13:16:18 -0400 |
commit | 9bc24801735884e0c03aa00e83804448c466bdf2 (patch) | |
tree | 5b2355805dd99b2922508338992bfb3118b34836 /lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs | |
parent | 1229ed75549de1c56aaee42c921acbd96c4d4c9b (diff) |
update plugins array instead of single path
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs')
-rw-r--r-- | lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs b/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs index 0337fbd..3258e27 100644 --- a/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs +++ b/lib/VNLib.Plugins.Extensions.Loading/src/ConfigurationExtensions.cs @@ -24,6 +24,7 @@ using System; using System.IO; +using System.Linq; using System.Text.Json; using System.Reflection; using System.Collections.Generic; @@ -71,7 +72,7 @@ namespace VNLib.Plugins.Extensions.Loading public const string S3_SECRET_KEY = "s3_secret"; public const string PLUGIN_ASSET_KEY = "assets"; public const string PLUGINS_HOST_KEY = "plugins"; - public const string PLUGIN_PATH_KEY = "path"; + public const string PLUGIN_PATHS_KEY = "paths"; /// <summary> /// Retrieves a top level configuration dictionary of elements for the specified type. @@ -492,16 +493,16 @@ namespace VNLib.Plugins.Extensions.Loading /// </summary> /// <param name="plugin"></param> /// <returns>The absolute path to the directory containing all plugins</returns> - public static string GetPluginsPath(this PluginBase plugin) + public static string[] GetPluginSearchDirs(this PluginBase plugin) { //Get global plugin config element IConfigScope config = plugin.GetConfig(PLUGINS_HOST_KEY); //Get the plugins path or throw because it should ALWAYS be defined if this method is called - string pluginsPath = config[PLUGIN_PATH_KEY].GetString()!; - - //Get absolute path - return Path.GetFullPath(pluginsPath); + return config[PLUGIN_PATHS_KEY].EnumerateArray() + .Select(static p => p.GetString()!) + .Select(Path.GetFullPath) //Get absolute file paths + .ToArray(); } } } |