Add system commands

This commit is contained in:
qianlifeng
2014-01-03 18:16:05 +08:00
parent 5893564f46
commit 1eb3f449e2
15 changed files with 317 additions and 45 deletions

View File

@@ -1,8 +1,11 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using WinAlfred.Helper;
using WinAlfred.Plugin;
using WinAlfred.Plugin.System;
namespace WinAlfred.PluginLoader
{
@@ -21,11 +24,34 @@ namespace WinAlfred.PluginLoader
private static void ParsePlugins()
{
ParseDirectories();
ParsePackagedPlugin();
ParseSystemPlugins();
ParseThirdPartyPlugins();
}
private static void ParseDirectories()
private static void ParseSystemPlugins()
{
try
{
Assembly asm = Assembly.GetAssembly(typeof (CMD));
List<Type> types = asm.GetTypes().Where(o => o.GetInterfaces().Contains(typeof(ISystemPlugin))).ToList();
foreach (Type type in types)
{
ISystemPlugin sysPlugin = Activator.CreateInstance(types[0]) as ISystemPlugin;
PluginMetadata metadata = new PluginMetadata();
}
}
catch (Exception e)
{
Log.Error(string.Format("Cound't load system plugin: {0}", e.Message));
#if (DEBUG)
{
throw;
}
#endif
}
}
private static void ParseThirdPartyPlugins()
{
string[] directories = Directory.GetDirectories(PluginPath);
foreach (string directory in directories)
@@ -35,11 +61,6 @@ namespace WinAlfred.PluginLoader
}
}
private static void ParsePackagedPlugin()
{
}
private static PluginMetadata GetMetadataFromIni(string directory)
{
string iniPath = directory + "\\" + PluginConfigName;
@@ -50,7 +71,6 @@ namespace WinAlfred.PluginLoader
return null;
}
try
{
PluginMetadata metadata = new PluginMetadata();
@@ -60,6 +80,7 @@ namespace WinAlfred.PluginLoader
metadata.Description = ini.GetSetting("plugin", "Description");
metadata.Language = ini.GetSetting("plugin", "Language");
metadata.Version = ini.GetSetting("plugin", "Version");
metadata.PluginType = PluginType.ThirdParty;
metadata.ActionKeyword = ini.GetSetting("plugin", "ActionKeyword");
metadata.ExecuteFilePath = AppDomain.CurrentDomain.BaseDirectory + directory + "\\" + ini.GetSetting("plugin", "ExecuteFile");
metadata.PluginDirecotry = AppDomain.CurrentDomain.BaseDirectory + directory + "\\";