[Release] wrt-installer_0.1.54
[framework/web/wrt-installer.git] / src / jobs / widget_install / task_file_manipulation.cpp
index e32607b..b1629de 100644 (file)
@@ -157,12 +157,14 @@ TaskFileManipulation::TaskFileManipulation(InstallerContext& context) :
             AddAbortStep(&TaskFileManipulation::StepAbortRenamePath);
         }
         AddStep(&TaskFileManipulation::StepCreatePrivateStorageDir);
+        AddStep(&TaskFileManipulation::StepCreateSharedFolder);
         AddStep(&TaskFileManipulation::StepLinkForPreload);
 
     } else {
         AddStep(&TaskFileManipulation::StepPrepareExternalDir);
         AddStep(&TaskFileManipulation::StepInstallToExternal);
         AddStep(&TaskFileManipulation::StepCreatePrivateStorageDir);
+        AddStep(&TaskFileManipulation::StepCreateSharedFolder);
 
         AddAbortStep(&TaskFileManipulation::StepAbortCreateExternalDir);
     }
@@ -406,5 +408,29 @@ void TaskFileManipulation::StepAbortCreateExternalDir()
     }
     WidgetInstallToExtSingleton::Instance().deinitialize();
 }
+
+void TaskFileManipulation::StepCreateSharedFolder()
+{
+    LogDebug("StepCreateSharedFolder");
+    std::string sharedPath = m_context.locations->getSharedRootDir();
+    LogDebug("Create shared directory : " <<
+            m_context.locations->getSharedRootDir());
+
+    WrtUtilMakeDir(sharedPath);
+
+    if (m_context.isUpdateMode) { //update
+        std::string backData = m_context.locations->getBackupSharedDir();
+        LogDebug("copy shared storage " << backData << " to " << sharedPath);
+        if (!DirectoryApi::DirectoryCopy(backData, sharedPath)) {
+            LogError("Failed to rename " << backData << " to " << sharedPath);
+            ThrowMsg(Exceptions::BackupFailed,
+                    "Error occurs copy shared strage files");
+        }
+    } else {
+        WrtUtilMakeDir(m_context.locations->getSharedResourceDir());
+        WrtUtilMakeDir(m_context.locations->getSharedDataDir());
+        WrtUtilMakeDir(m_context.locations->getSharedTrustedDir());
+    }
+}
 } //namespace WidgetInstall
 } //namespace Jobs