diff options
| author | 2021-05-25 19:32:56 -0400 | |
|---|---|---|
| committer | 2021-05-25 19:32:56 -0400 | |
| commit | 065867e2c24e9856c360fc2d6b9a86c92aedc43e (patch) | |
| tree | 7964e85ef4f01a3c2b8f44e850f37b384405b930 /src/core/reporter.cpp | |
| parent | Merge pull request #6349 from german77/suppress_config_warning (diff) | |
| download | yuzu-065867e2c24e9856c360fc2d6b9a86c92aedc43e.tar.gz yuzu-065867e2c24e9856c360fc2d6b9a86c92aedc43e.tar.xz yuzu-065867e2c24e9856c360fc2d6b9a86c92aedc43e.zip | |
common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)
* common: fs: fs_types: Create filesystem types
Contains various filesystem types used by the Common::FS library
* common: fs: fs_util: Add std::string to std::u8string conversion utility
* common: fs: path_util: Add utlity functions for paths
Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library
* common: fs: file: Rewrite the IOFile implementation
* common: fs: Reimplement Common::FS library using std::filesystem
* common: fs: fs_paths: Add fs_paths to replace common_paths
* common: fs: path_util: Add the rest of the path functions
* common: Remove the previous Common::FS implementation
* general: Remove unused fs includes
* string_util: Remove unused function and include
* nvidia_flags: Migrate to the new Common::FS library
* settings: Migrate to the new Common::FS library
* logging: backend: Migrate to the new Common::FS library
* core: Migrate to the new Common::FS library
* perf_stats: Migrate to the new Common::FS library
* reporter: Migrate to the new Common::FS library
* telemetry_session: Migrate to the new Common::FS library
* key_manager: Migrate to the new Common::FS library
* bis_factory: Migrate to the new Common::FS library
* registered_cache: Migrate to the new Common::FS library
* xts_archive: Migrate to the new Common::FS library
* service: acc: Migrate to the new Common::FS library
* applets/profile: Migrate to the new Common::FS library
* applets/web: Migrate to the new Common::FS library
* service: filesystem: Migrate to the new Common::FS library
* loader: Migrate to the new Common::FS library
* gl_shader_disk_cache: Migrate to the new Common::FS library
* nsight_aftermath_tracker: Migrate to the new Common::FS library
* vulkan_library: Migrate to the new Common::FS library
* configure_debug: Migrate to the new Common::FS library
* game_list_worker: Migrate to the new Common::FS library
* config: Migrate to the new Common::FS library
* configure_filesystem: Migrate to the new Common::FS library
* configure_per_game_addons: Migrate to the new Common::FS library
* configure_profile_manager: Migrate to the new Common::FS library
* configure_ui: Migrate to the new Common::FS library
* input_profiles: Migrate to the new Common::FS library
* yuzu_cmd: config: Migrate to the new Common::FS library
* yuzu_cmd: Migrate to the new Common::FS library
* vfs_real: Migrate to the new Common::FS library
* vfs: Migrate to the new Common::FS library
* vfs_libzip: Migrate to the new Common::FS library
* service: bcat: Migrate to the new Common::FS library
* yuzu: main: Migrate to the new Common::FS library
* vfs_real: Delete the contents of an existing file in CreateFile
Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now.
* input_profiles: Don't iterate the input profile dir if it does not exist
Silences an error produced in the log if the directory does not exist.
* game_list_worker: Skip parsing file if the returned VfsFile is nullptr
Prevents crashes in GetLoader when the virtual file is nullptr
* common: fs: Validate paths for path length
* service: filesystem: Open the mod load directory as read only
Diffstat (limited to 'src/core/reporter.cpp')
| -rw-r--r-- | src/core/reporter.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/core/reporter.cpp b/src/core/reporter.cpp index d1e807dd4..a9596fe4d 100644 --- a/src/core/reporter.cpp +++ b/src/core/reporter.cpp | |||
| @@ -11,7 +11,9 @@ | |||
| 11 | #include <fmt/ostream.h> | 11 | #include <fmt/ostream.h> |
| 12 | #include <nlohmann/json.hpp> | 12 | #include <nlohmann/json.hpp> |
| 13 | 13 | ||
| 14 | #include "common/file_util.h" | 14 | #include "common/fs/file.h" |
| 15 | #include "common/fs/fs.h" | ||
| 16 | #include "common/fs/path_util.h" | ||
| 15 | #include "common/hex_util.h" | 17 | #include "common/hex_util.h" |
| 16 | #include "common/scm_rev.h" | 18 | #include "common/scm_rev.h" |
| 17 | #include "common/settings.h" | 19 | #include "common/settings.h" |
| @@ -26,10 +28,9 @@ | |||
| 26 | 28 | ||
| 27 | namespace { | 29 | namespace { |
| 28 | 30 | ||
| 29 | std::string GetPath(std::string_view type, u64 title_id, std::string_view timestamp) { | 31 | std::filesystem::path GetPath(std::string_view type, u64 title_id, std::string_view timestamp) { |
| 30 | return fmt::format("{}{}/{:016X}_{}.json", | 32 | return Common::FS::GetYuzuPath(Common::FS::YuzuPath::LogDir) / type / |
| 31 | Common::FS::GetUserPath(Common::FS::UserPath::LogDir), type, title_id, | 33 | fmt::format("{:016X}_{}.json", title_id, timestamp); |
| 32 | timestamp); | ||
| 33 | } | 34 | } |
| 34 | 35 | ||
| 35 | std::string GetTimestamp() { | 36 | std::string GetTimestamp() { |
| @@ -39,14 +40,16 @@ std::string GetTimestamp() { | |||
| 39 | 40 | ||
| 40 | using namespace nlohmann; | 41 | using namespace nlohmann; |
| 41 | 42 | ||
| 42 | void SaveToFile(json json, const std::string& filename) { | 43 | void SaveToFile(json json, const std::filesystem::path& filename) { |
| 43 | if (!Common::FS::CreateFullPath(filename)) { | 44 | if (!Common::FS::CreateParentDirs(filename)) { |
| 44 | LOG_ERROR(Core, "Failed to create path for '{}' to save report!", filename); | 45 | LOG_ERROR(Core, "Failed to create path for '{}' to save report!", |
| 46 | Common::FS::PathToUTF8String(filename)); | ||
| 45 | return; | 47 | return; |
| 46 | } | 48 | } |
| 47 | 49 | ||
| 48 | std::ofstream file( | 50 | std::ofstream file; |
| 49 | Common::FS::SanitizePath(filename, Common::FS::DirectorySeparator::PlatformDefault)); | 51 | Common::FS::OpenFileStream(file, filename, std::ios_base::out | std::ios_base::trunc); |
| 52 | |||
| 50 | file << std::setw(4) << json << std::endl; | 53 | file << std::setw(4) << json << std::endl; |
| 51 | } | 54 | } |
| 52 | 55 | ||