Переглянути джерело

process plugin add && upgrade

xuqiang 4 місяців тому
батько
коміт
1d1be4e4c4
2 змінених файлів з 10 додано та 3 видалено
  1. 7 1
      src/httpserver.cpp
  2. 3 2
      src/pluginmanager.cpp

+ 7 - 1
src/httpserver.cpp

@@ -271,9 +271,15 @@ void HttpServer::run_hhttp_sever()
                                 emit netparseConfigureUpdate(filename);
                             } else if(type == "pluginadd") {
                                 LOG_INFO("add plugin: {}", item.filename);
+                                PluginManager &pluginMgr = AppContext::instance().pluginManager();
+                                bool ret = pluginMgr.addPlugin(filename);
+                                LOG_INFO("add plugin: {}", ret);
                             } else if(type == "pluginupgrade") {
                                 auto pluginName = header[3].toString();
-                                LOG_INFO("upgrade plugin: {}", pluginName.toStdString());
+                                LOG_INFO("upgrade plugin: {}, {}", pluginName.toStdString(), item.filename);
+                                PluginManager &pluginMgr = AppContext::instance().pluginManager();
+                                bool ret = pluginMgr.upgradePlugin(pluginName, filename);
+                                LOG_INFO("upgrade plugin: {}", ret);
                             }
 
                             QJsonObject obj = {

+ 3 - 2
src/pluginmanager.cpp

@@ -215,7 +215,7 @@ bool PluginManager::upgradePlugin(QString fileName, QString srcFile)
     ret = delPlugin(fileName, true);
     if(ret)
     {
-        QString dstFile = QString("%1/%2").arg(QDir::currentPath(), fileName);
+        QString dstFile = QString("%1/%2/%3").arg(QDir::currentPath(), "plugins", fileName);
         ret = QFile::copy(srcFile, dstFile);
         if(ret)
         {
@@ -230,7 +230,7 @@ bool PluginManager::upgradePlugin(QString fileName, QString srcFile)
 bool PluginManager::addPlugin(QString srcFile)
 {
     QFileInfo fileInfo(srcFile);
-    QString dstFile = QString("%1/%2").arg(QDir::currentPath(), fileInfo.fileName());
+    QString dstFile = QString("%1/%2/%3").arg(QDir::currentPath(), "plugins", fileInfo.fileName());
     bool ret =  QFile::copy(srcFile, dstFile);
     if(ret)
     {
@@ -241,6 +241,7 @@ bool PluginManager::addPlugin(QString srcFile)
         m_pluginInfoMap.insert(info.fileName, info);
         loadPlugin(info.fileName);
     }
+    savePluginInfo();
     return ret;
 }