1
- using System ;
1
+ using System ;
2
2
using System . Collections . Generic ;
3
3
using System . Linq ;
4
4
using System . IO ;
5
- using System . Threading . Tasks ;
6
5
using Newtonsoft . Json ;
7
- using Flow . Launcher . Infrastructure . Exception ;
8
6
using Flow . Launcher . Infrastructure . Logger ;
9
7
using Flow . Launcher . Plugin ;
10
8
@@ -14,23 +12,17 @@ namespace Flow.Launcher.Core.Plugin
14
12
internal abstract class PluginConfig
15
13
{
16
14
private const string PluginConfigName = "plugin.json" ;
17
- private static readonly List < PluginMetadata > PluginMetadatas = new List < PluginMetadata > ( ) ;
18
15
19
16
/// <summary>
20
- /// Parse plugin metadata in giving directories
17
+ /// Parse plugin metadata in the given directories
21
18
/// </summary>
22
19
/// <param name="pluginDirectories"></param>
23
20
/// <returns></returns>
24
21
public static List < PluginMetadata > Parse ( string [ ] pluginDirectories )
25
22
{
26
- PluginMetadatas . Clear ( ) ;
23
+ var allPluginMetadata = new List < PluginMetadata > ( ) ;
27
24
var directories = pluginDirectories . SelectMany ( Directory . GetDirectories ) ;
28
- ParsePluginConfigs ( directories ) ;
29
- return PluginMetadatas ;
30
- }
31
25
32
- private static void ParsePluginConfigs ( IEnumerable < string > directories )
33
- {
34
26
// todo use linq when diable plugin is implmented since parallel.foreach + list is not thread saft
35
27
foreach ( var directory in directories )
36
28
{
@@ -50,10 +42,12 @@ private static void ParsePluginConfigs(IEnumerable<string> directories)
50
42
PluginMetadata metadata = GetPluginMetadata ( directory ) ;
51
43
if ( metadata != null )
52
44
{
53
- PluginMetadatas . Add ( metadata ) ;
45
+ allPluginMetadata . Add ( metadata ) ;
54
46
}
55
47
}
56
48
}
49
+
50
+ return allPluginMetadata ;
57
51
}
58
52
59
53
private static PluginMetadata GetPluginMetadata ( string pluginDirectory )
@@ -81,7 +75,6 @@ private static PluginMetadata GetPluginMetadata(string pluginDirectory)
81
75
return null ;
82
76
}
83
77
84
-
85
78
if ( ! AllowedLanguage . IsAllowed ( metadata . Language ) )
86
79
{
87
80
Log . Error ( $ "|PluginConfig.GetPluginMetadata|Invalid language <{ metadata . Language } > for config <{ configPath } >") ;
0 commit comments