[Release] wrt-installer_0.1.9
[framework/web/wrt-installer.git] / src / jobs / widget_uninstall / task_uninstall_ospsvc.cpp
index 24909a8..572b130 100644 (file)
@@ -20,6 +20,7 @@
  * @brief   Header file for widget uninstall task to uninstall ospsvc
  */
 #include <dpl/sstream.h>
+#include <dpl/utils/bash_utils.h>
 #include <widget_uninstall/task_uninstall_ospsvc.h>
 #include <widget_uninstall/job_widget_uninstall.h>
 #include <widget_uninstall/uninstaller_context.h>
@@ -31,7 +32,7 @@ using namespace WrtDB;
 
 namespace {
 const int MAX_BUF_SIZE = 128;
-const char* OSP_INSTALL_STR = "/usr/etc/package-manager/backend/oap -uv ";
+const char* OSP_INSTALL_STR = "/usr/etc/package-manager/backend/tpk -uv ";
 }
 
 namespace Jobs {
@@ -44,40 +45,48 @@ TaskUninstallOspsvc::TaskUninstallOspsvc(UninstallerContext& context) :
 }
 
 TaskUninstallOspsvc::~TaskUninstallOspsvc()
-{
-}
+{}
 
 void TaskUninstallOspsvc::StepUninstallOspsvc()
 {
     LogInfo("Step : Uninstall Osp service ");
 
     std::ostringstream commStr;
-    commStr << OSP_INSTALL_STR << m_context.pkgname;;
-    LogDebug("@@osp uninstall command : " << commStr.str());
+    commStr << OSP_INSTALL_STR << BashUtils::escape_arg(m_context.tzPkgid);
+    LogDebug("osp uninstall command : " << commStr.str());
 
     char readBuf[MAX_BUF_SIZE];
     FILE *fd;
     fd = popen(commStr.str().c_str(), "r");
     if (NULL == fd) {
         LogError("Failed to uninstalltion osp service");
-        ThrowMsg(Exceptions::UninstallOspSvcFailed, "Error occurs during\
+        ThrowMsg(Exceptions::UninstallOspSvcFailed,
+                 "Error occurs during\
+                uninstall osp service");
+    }
+
+    if(fgets(readBuf, MAX_BUF_SIZE, fd) == NULL)
+    {
+        LogError("Failed to uninstalltion osp service\
+                        Inability of reading file.");
+        ThrowMsg(Exceptions::UninstallOspSvcFailed,
+                "Error occurs during\
                 uninstall osp service");
     }
-    fgets( readBuf, MAX_BUF_SIZE, fd);
     LogDebug("return value : " << readBuf);
 
     int result = atoi(readBuf);
     if (0 != result) {
-        ThrowMsg(Exceptions::UninstallOspSvcFailed, "Error occurs during\
+        ThrowMsg(Exceptions::UninstallOspSvcFailed,
+                 "Error occurs during\
                 install osp service");
     }
 
     pclose(fd);
-    
-    LogInfo("Widget Can be uninstalled. Handle : " << m_context.widgetHandle);
+
+    LogInfo("Widget Can be uninstalled. Pkgname : " << m_context.tzPkgid);
     m_context.job->UpdateProgress(UninstallerContext::UNINSTALL_REMOVE_OSPSVC,
                                   "Uninstall OSP service finished");
 }
-
 } //namespace WidgetUninstall
 } //namespace Jobs