// backup
for (auto& pair : icons_) {
- if (!MoveFile(pair.first, pair.second)) {
+ if (!MoveFile(pair.first, pair.second, true)) {
LOG(ERROR) << "Cannot create backup for icon: " << pair.first;
return Status::ICON_ERROR;
}
GetBackupPathForManifestFile(context_->xml_path.get());
context_->backup_xml_path.set(backup_xml_path);
bs::error_code error;
- bf::copy(context_->xml_path.get(), context_->backup_xml_path.get(), error);
+ bf::copy_file(context_->xml_path.get(), context_->backup_xml_path.get(),
+ bf::copy_option::overwrite_if_exists, error);
if (error) {
LOG(ERROR) << "Failed to make a copy of xml manifest file";
return Status::MANIFEST_ERROR;
}
Step::Status StepCopyBackup::process() {
+ // if backup file exists
+ if (!CleanBackupDirectory())
+ return Status::APP_DIR_ERROR;
if (!Backup())
return Status::APP_DIR_ERROR;
// create backup directory
bs::error_code error;
bf::create_directories(backup_path_, error);
-
// create copy of old package content skipping the external memory mount point
for (bf::directory_iterator iter(context_->pkg_path.get());
iter != bf::directory_iterator(); ++iter) {
return true;
}
-bool MoveFile(const bf::path& src, const bf::path& dst) {
- if (bf::exists(dst))
+bool MoveFile(const bf::path& src, const bf::path& dst, bool force) {
+ if (!force && bf::exists(dst))
return false;
bs::error_code error;
bf::rename(src, dst, error);
const boost::filesystem::path& dst, FSFlag flags = FS_NONE);
bool MoveFile(const boost::filesystem::path& src,
- const boost::filesystem::path& dst);
+ const boost::filesystem::path& dst, bool force = false);
bool SetDirPermissions(const boost::filesystem::path& path,
boost::filesystem::perms permissions);