Remove boost dependency
[platform/core/appfw/app-installers.git] / src / common / step / filesystem / step_copy_storage_directories.cc
index c7c1ff3..a31c6c3 100644 (file)
@@ -4,16 +4,14 @@
 
 #include "common/step/filesystem/step_copy_storage_directories.h"
 
-#include <boost/filesystem/path.hpp>
-#include <boost/system/error_code.hpp>
-
+#include <filesystem>
 #include <string>
+#include <system_error>
 
-#include "common/paths.h"
+#include "common/utils/paths.h"
 #include "utils/file_util.h"
 
-namespace bf = boost::filesystem;
-namespace bs = boost::system;
+namespace fs = std::filesystem;
 
 namespace {
 
@@ -26,24 +24,25 @@ const char kSharedResLocation[] = "shared";
 namespace common_installer {
 namespace filesystem {
 
-bool StepCopyStorageDirectories::MoveAppStorage(
-    const bf::path& in_src,
-    const bf::path& in_dst,
+bool StepCopyStorageDirectories::CopyAppStorage(
+    const fs::path& in_src,
+    const fs::path& in_dst,
     const char *key,
     bool merge_dirs) {
-  bf::path src = in_src / key;
-  bf::path dst = in_dst / key;
-  return common_installer::MoveDir(src, dst,
-      merge_dirs ? common_installer::FS_MERGE_SKIP
-                 : common_installer::FS_NONE);
+  fs::path src = in_src / key;
+  fs::path dst = in_dst / key;
+  return common_installer::CopyDir(src, dst,
+      merge_dirs ? common_installer::FS_MERGE_SKIP |
+                   common_installer::FS_PRESERVE_OWNERSHIP_AND_PERMISSIONS
+                 : common_installer::FS_NONE, false);
 }
 
 common_installer::Step::Status StepCopyStorageDirectories::precheck() {
   backup_path_ =
-      common_installer::GetBackupPathForPackagePath(context_->pkg_path.get());
+      common_installer::GetBackupPathForPackagePath(context_->GetPkgPath());
 
-  bs::error_code error_code;
-  if (!bf::exists(backup_path_, error_code)) {
+  std::error_code error_code;
+  if (!fs::exists(backup_path_, error_code)) {
     LOG(DEBUG) << "Cannot restore storage directories from: " << backup_path_;
     return Status::INVALID_VALUE;
   }
@@ -54,15 +53,15 @@ common_installer::Step::Status StepCopyStorageDirectories::precheck() {
 common_installer::Step::Status StepCopyStorageDirectories::process() {
   if (context_->request_mode.get() == RequestMode::GLOBAL)
     return Status::OK;
-  if (!MoveAppStorage(backup_path_,
-                      context_->pkg_path.get(),
+  if (!CopyAppStorage(backup_path_,
+                      context_->GetPkgPath(),
                       kDataLocation, true)) {
     LOG(ERROR) << "Failed to restore private directory for widget in update";
     return Status::APP_DIR_ERROR;
   }
 
-  if (!MoveAppStorage(backup_path_,
-                      context_->pkg_path.get(),
+  if (!CopyAppStorage(backup_path_,
+                      context_->GetPkgPath(),
                       kSharedResLocation, true)) {
     LOG(ERROR) << "Failed to restore shared directory for widget in update";
     return Status::APP_DIR_ERROR;
@@ -74,31 +73,10 @@ common_installer::Step::Status StepCopyStorageDirectories::process() {
   return Status::OK;
 }
 
-common_installer::Step::Status StepCopyStorageDirectories::undo() {
-  if (context_->request_mode.get() == RequestMode::GLOBAL)
-    return Status::OK;
-  common_installer::Step::Status ret = Status::OK;
-  if (!MoveAppStorage(context_->pkg_path.get(),
-                      backup_path_,
-                      kDataLocation)) {
-    LOG(ERROR) << "Failed to restore private directory for package in update";
-    ret = Status::APP_DIR_ERROR;
-  }
-
-  if (!MoveAppStorage(context_->pkg_path.get(),
-                      backup_path_,
-                      kSharedResLocation)) {
-    LOG(ERROR) << "Failed to restore shared directory for package in update";
-    ret = Status::APP_DIR_ERROR;
-  }
-
-  return ret;
-}
-
 bool StepCopyStorageDirectories::CacheDir() {
-  bs::error_code error_code;
-  bf::path cache_path = context_->pkg_path.get() / kCache;
-  bf::create_directory(cache_path, error_code);
+  std::error_code error_code;
+  fs::path cache_path = context_->GetPkgPath() / kCache;
+  fs::create_directory(cache_path, error_code);
   if (error_code) {
     LOG(ERROR) << "Failed to create cache directory for package";
     return false;