From 9cebde760f1a268219f68970601521ad355ac192 Mon Sep 17 00:00:00 2001
From: german77 <juangerman-13@hotmail.com>
Date: Sat, 27 Mar 2021 12:34:48 -0500
Subject: [PATCH] yuzu/main: Add user command line argument

---
 src/yuzu/main.cpp | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

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) {