Step::Status StepUnzip::process() {
bf::path tmp_dir = GenerateTmpDir(kPackageUnpackDirPath);
- // write unpacked directory for recovery file
- if (context_->recovery_info.get().recovery_file) {
- context_->recovery_info.get().recovery_file->set_unpacked_dir(tmp_dir);
- context_->recovery_info.get().recovery_file->WriteAndCommitFileContent();
- }
-
- if (!CreateDir(tmp_dir)) {
- LOG(ERROR) << "Failed to create temp directory: " << tmp_dir;
- return Step::Status::APP_DIR_ERROR;
- }
-
int64_t required_size =
GetUnpackedPackageSize(context_->file_path.get());
if (required_size == -1) {
LOG(ERROR) << "Couldn't get uncompressed size for package: "
<< context_->file_path.get();
- RemoveAll(tmp_dir);
return Step::Status::APP_DIR_ERROR;
}
if (!CheckFreeSpaceAtPath(required_size, tmp_dir)) {
LOG(ERROR) << "There is not enough space to unpack application files";
- RemoveAll(tmp_dir);
return Step::Status::OUT_OF_SPACE;
}
if (!CheckFreeSpaceAtPath(required_size,
bf::path(context_->root_application_path.get()))) {
LOG(ERROR) << "There is not enough space to install application files";
- RemoveAll(tmp_dir);
return Step::Status::OUT_OF_SPACE;
}
+ // write unpacked directory for recovery file
+ if (context_->recovery_info.get().recovery_file) {
+ context_->recovery_info.get().recovery_file->set_unpacked_dir(tmp_dir);
+ context_->recovery_info.get().recovery_file->WriteAndCommitFileContent();
+ }
+
+ if (!CreateDir(tmp_dir)) {
+ LOG(ERROR) << "Failed to create temp directory: " << tmp_dir;
+ return Step::Status::APP_DIR_ERROR;
+ }
+
+
if (!ExtractToTmpDir(context_->file_path.get().string().c_str(), tmp_dir)) {
LOG(ERROR) << "Failed to process unpack step";
RemoveAll(tmp_dir);