summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinTool/ToolMain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinTool/ToolMain.cpp')
-rw-r--r--Source/Core/DolphinTool/ToolMain.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/Source/Core/DolphinTool/ToolMain.cpp b/Source/Core/DolphinTool/ToolMain.cpp
new file mode 100644
index 0000000000..31c668bd4a
--- /dev/null
+++ b/Source/Core/DolphinTool/ToolMain.cpp
@@ -0,0 +1,45 @@
+// Copyright 2021 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <cstdio>
+#include <cstring>
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include "Common/Version.h"
+#include "DolphinTool/Command.h"
+#include "DolphinTool/ConvertCommand.h"
+#include "DolphinTool/VerifyCommand.h"
+
+static int PrintUsage(int code)
+{
+ std::cerr << "usage: dolphin-tool COMMAND -h" << std::endl << std::endl;
+ std::cerr << "commands supported: [convert, verify]" << std::endl;
+
+ return code;
+}
+
+int main(int argc, char* argv[])
+{
+ if (argc < 2)
+ return PrintUsage(1);
+
+ std::vector<std::string> args(argv, argv + argc);
+
+ std::string command_str = args.at(1);
+
+ // Take off the command selector before passing arguments down
+ args.erase(args.begin(), args.begin() + 1);
+
+ std::unique_ptr<DolphinTool::Command> command;
+
+ if (command_str == "convert")
+ command = std::make_unique<DolphinTool::ConvertCommand>();
+ else if (command_str == "verify")
+ command = std::make_unique<DolphinTool::VerifyCommand>();
+ else
+ return PrintUsage(1);
+
+ return command->Main(args);
+}