diff options
| author | Léo Lam <leo@leolam.fr> | 2022-01-03 01:46:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-03 01:46:22 +0100 |
| commit | 953eb49cd8f52495b0cde80487f19c0dc279ca25 (patch) | |
| tree | 1d539c6fc2a04d1a9406170286f0ec89dffff147 /Source/Core | |
| parent | 7abb501e0aeca51d62b0d837059bb1d7dae959d0 (diff) | |
| parent | 4d125064fe82423b2336e5857b813ce47abaea66 (diff) | |
Merge pull request #10335 from ssdsnake/dolphintool_fix_20220102
DolphinTool: initialize user directories before verify/convert operations
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/DolphinTool/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | Source/Core/DolphinTool/ConvertCommand.cpp | 15 | ||||
| -rw-r--r-- | Source/Core/DolphinTool/VerifyCommand.cpp | 15 |
3 files changed, 31 insertions, 0 deletions
diff --git a/Source/Core/DolphinTool/CMakeLists.txt b/Source/Core/DolphinTool/CMakeLists.txt index 4b209ac98b..a5bbe2908c 100644 --- a/Source/Core/DolphinTool/CMakeLists.txt +++ b/Source/Core/DolphinTool/CMakeLists.txt @@ -13,6 +13,7 @@ set_target_properties(dolphin-tool PROPERTIES OUTPUT_NAME dolphin-tool) target_link_libraries(dolphin-tool PRIVATE discio + uicommon videocommon cpp-optparse ) diff --git a/Source/Core/DolphinTool/ConvertCommand.cpp b/Source/Core/DolphinTool/ConvertCommand.cpp index ca270e9d12..d98adcb0b8 100644 --- a/Source/Core/DolphinTool/ConvertCommand.cpp +++ b/Source/Core/DolphinTool/ConvertCommand.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "DolphinTool/ConvertCommand.h" +#include "UICommon/UICommon.h" #include <OptionParser.h> @@ -13,6 +14,11 @@ int ConvertCommand::Main(const std::vector<std::string>& args) parser->usage("usage: convert [options]... [FILE]..."); + parser->add_option("-u", "--user") + .action("store") + .help("User folder path, required for temporary processing files." + "Will be automatically created if this option is not set."); + parser->add_option("-i", "--input") .type("string") .action("store") @@ -56,6 +62,15 @@ int ConvertCommand::Main(const std::vector<std::string>& args) const optparse::Values& options = parser->parse_args(args); + // Initialize the dolphin user directory, required for temporary processing files + // If this is not set, destructive file operations could occur due to path confusion + std::string user_directory; + if (options.is_set("user")) + user_directory = static_cast<const char*>(options.get("user")); + + UICommon::SetUserDirectory(user_directory); + UICommon::Init(); + // Validate options // --input diff --git a/Source/Core/DolphinTool/VerifyCommand.cpp b/Source/Core/DolphinTool/VerifyCommand.cpp index 6eb920a6f2..69a2ebf0b5 100644 --- a/Source/Core/DolphinTool/VerifyCommand.cpp +++ b/Source/Core/DolphinTool/VerifyCommand.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "DolphinTool/VerifyCommand.h" +#include "UICommon/UICommon.h" #include <OptionParser.h> @@ -13,6 +14,11 @@ int VerifyCommand::Main(const std::vector<std::string>& args) parser->usage("usage: verify [options]..."); + parser->add_option("-u", "--user") + .action("store") + .help("User folder path, required for temporary processing files." + "Will be automatically created if this option is not set."); + parser->add_option("-i", "--input") .type("string") .action("store") @@ -28,6 +34,15 @@ int VerifyCommand::Main(const std::vector<std::string>& args) const optparse::Values& options = parser->parse_args(args); + // Initialize the dolphin user directory, required for temporary processing files + // If this is not set, destructive file operations could occur due to path confusion + std::string user_directory; + if (options.is_set("user")) + user_directory = static_cast<const char*>(options.get("user")); + + UICommon::SetUserDirectory(user_directory); + UICommon::Init(); + // Validate options const std::string input_file_path = static_cast<const char*>(options.get("input")); if (input_file_path.empty()) |
