Enhance AsarWrapper patch file handling
- Added filesystem support to ensure the base directory exists before creating a temporary patch file. - Improved error reporting by including the path of the failed temporary patch file creation in the error message.
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
#include "absl/strings/str_format.h"
|
#include "absl/strings/str_format.h"
|
||||||
#include "absl/strings/str_join.h"
|
#include "absl/strings/str_join.h"
|
||||||
@@ -135,12 +136,15 @@ absl::StatusOr<AsarPatchResult> AsarWrapper::ApplyPatchFromString(
|
|||||||
// Create temporary file for patch content
|
// Create temporary file for patch content
|
||||||
std::string temp_path = "/tmp/yaze_temp_patch.asm";
|
std::string temp_path = "/tmp/yaze_temp_patch.asm";
|
||||||
if (!base_path.empty()) {
|
if (!base_path.empty()) {
|
||||||
|
// Ensure directory exists
|
||||||
|
std::filesystem::create_directories(base_path);
|
||||||
temp_path = base_path + "/temp_patch.asm";
|
temp_path = base_path + "/temp_patch.asm";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ofstream temp_file(temp_path);
|
std::ofstream temp_file(temp_path);
|
||||||
if (!temp_file) {
|
if (!temp_file) {
|
||||||
return absl::InternalError("Failed to create temporary patch file");
|
return absl::InternalError(absl::StrFormat(
|
||||||
|
"Failed to create temporary patch file at: %s", temp_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
temp_file << patch_content;
|
temp_file << patch_content;
|
||||||
|
|||||||
Reference in New Issue
Block a user