| 262 | } |
| 263 | |
| 264 | bool Updater::PrepareStagingDirectory() |
| 265 | { |
| 266 | if (FileSystem::DirectoryExists(m_staging_directory.c_str())) |
| 267 | { |
| 268 | m_progress->DisplayFormattedWarning("Update staging directory already exists, removing"); |
| 269 | if (!RecursiveDeleteDirectory(m_staging_directory.c_str()) || |
| 270 | FileSystem::DirectoryExists(m_staging_directory.c_str())) |
| 271 | { |
| 272 | m_progress->ModalError("Failed to remove old staging directory"); |
| 273 | return false; |
| 274 | } |
| 275 | } |
| 276 | if (!FileSystem::CreateDirectoryPath(m_staging_directory.c_str(), false)) |
| 277 | { |
| 278 | m_progress->DisplayFormattedModalError("Failed to create staging directory %s", m_staging_directory.c_str()); |
| 279 | return false; |
| 280 | } |
| 281 | |
| 282 | // create subdirectories in staging directory |
| 283 | for (const std::string& subdir : m_update_directories) |
| 284 | { |
| 285 | m_progress->DisplayFormattedInformation("Creating subdirectory in staging: %s", subdir.c_str()); |
| 286 | |
| 287 | const std::string staging_subdir = |
| 288 | StringUtil::StdStringFromFormat("%s" FS_OSPATH_SEPARATOR_STR "%s", m_staging_directory.c_str(), subdir.c_str()); |
| 289 | if (!FileSystem::CreateDirectoryPath(staging_subdir.c_str(), false)) |
| 290 | { |
| 291 | m_progress->DisplayFormattedModalError("Failed to create staging subdirectory %s", staging_subdir.c_str()); |
| 292 | return false; |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | return true; |
| 297 | } |
| 298 | |
| 299 | bool Updater::StageUpdate() |
| 300 | { |
no test coverage detected