aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-03-30 15:01:33 -0700
committerGitHub <noreply@github.com>2021-03-30 15:01:33 -0700
commiteeea426c745e26f20f1cf6c6929c377897ef3e68 (patch)
tree8949fd213838a30e3494ebfc4195d4afa9cffb02 /src
parentb3f68098d50568529f9404750046c98e4f411419 (diff)
parent9cebde760f1a268219f68970601521ad355ac192 (diff)
Merge pull request #6116 from german77/userArgument
yuzu/main: Add user command line argument
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/main.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 24bfa4d349..06445b993d 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -320,6 +320,34 @@ GMainWindow::GMainWindow()
continue;
}
+ // Launch game with a specific user
+ if (args[i] == QStringLiteral("-u")) {
+ if (i >= args.size() - 1) {
+ continue;
+ }
+
+ if (args[i + 1].startsWith(QChar::fromLatin1('-'))) {
+ continue;
+ }
+
+ bool argument_ok;
+ const std::size_t selected_user = args[++i].toUInt(&argument_ok);
+
+ if (!argument_ok) {
+ LOG_ERROR(Frontend, "Invalid user argument");
+ continue;
+ }
+
+ const Service::Account::ProfileManager manager;
+ if (!manager.UserExistsIndex(selected_user)) {
+ LOG_ERROR(Frontend, "Selected user doesn't exist");
+ continue;
+ }
+
+ Settings::values.current_user = selected_user;
+ continue;
+ }
+
// Launch game at path
if (args[i] == QStringLiteral("-g")) {
if (i >= args.size() - 1) {