forked from Mirror/Ryujinx
Implement -p or --profile command line argument (#2947)
* Implement -p or --profile command line argument * Put command line logic all in Program and reference it elsewhere * Address feedback
This commit is contained in:
parent
3705c20668
commit
a3dd04deef
3 changed files with 24 additions and 3 deletions
|
@ -3,6 +3,7 @@ using LibHac.Common;
|
||||||
using LibHac.Fs;
|
using LibHac.Fs;
|
||||||
using LibHac.Fs.Shim;
|
using LibHac.Fs.Shim;
|
||||||
using Ryujinx.Common;
|
using Ryujinx.Common;
|
||||||
|
using Ryujinx.Common.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -25,7 +26,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
|
||||||
|
|
||||||
public UserProfile LastOpenedUser { get; private set; }
|
public UserProfile LastOpenedUser { get; private set; }
|
||||||
|
|
||||||
public AccountManager(HorizonClient horizonClient)
|
public AccountManager(HorizonClient horizonClient, string initialProfileName = null)
|
||||||
{
|
{
|
||||||
_horizonClient = horizonClient;
|
_horizonClient = horizonClient;
|
||||||
|
|
||||||
|
@ -43,7 +44,14 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OpenUser(_accountSaveDataManager.LastOpened);
|
UserId commandLineUserProfileOverride = default;
|
||||||
|
if (!string.IsNullOrEmpty(initialProfileName))
|
||||||
|
{
|
||||||
|
commandLineUserProfileOverride = _profiles.Values.FirstOrDefault(x => x.Name == initialProfileName)?.UserId ?? default;
|
||||||
|
if (commandLineUserProfileOverride.IsNull)
|
||||||
|
Logger.Warning?.Print(LogClass.Application, $"The command line specified profile named '{initialProfileName}' was not found");
|
||||||
|
}
|
||||||
|
OpenUser(commandLineUserProfileOverride.IsNull ? _accountSaveDataManager.LastOpened : commandLineUserProfileOverride);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,8 @@ namespace Ryujinx
|
||||||
|
|
||||||
public static string ConfigurationPath { get; set; }
|
public static string ConfigurationPath { get; set; }
|
||||||
|
|
||||||
|
public static string CommandLineProfile { get; set; }
|
||||||
|
|
||||||
[DllImport("libX11")]
|
[DllImport("libX11")]
|
||||||
private extern static int XInitThreads();
|
private extern static int XInitThreads();
|
||||||
|
|
||||||
|
@ -52,6 +54,17 @@ namespace Ryujinx
|
||||||
|
|
||||||
baseDirPathArg = args[++i];
|
baseDirPathArg = args[++i];
|
||||||
}
|
}
|
||||||
|
else if (arg == "-p" || arg == "--profile")
|
||||||
|
{
|
||||||
|
if (i + 1 >= args.Length)
|
||||||
|
{
|
||||||
|
Logger.Error?.Print(LogClass.Application, $"Invalid option '{arg}'");
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
CommandLineProfile = args[++i];
|
||||||
|
}
|
||||||
else if (arg == "-f" || arg == "--fullscreen")
|
else if (arg == "-f" || arg == "--fullscreen")
|
||||||
{
|
{
|
||||||
startFullscreenArg = true;
|
startFullscreenArg = true;
|
||||||
|
|
|
@ -178,7 +178,7 @@ namespace Ryujinx.Ui
|
||||||
VirtualFileSystem.FixExtraData(_libHacHorizonManager.RyujinxClient);
|
VirtualFileSystem.FixExtraData(_libHacHorizonManager.RyujinxClient);
|
||||||
|
|
||||||
_contentManager = new ContentManager(_virtualFileSystem);
|
_contentManager = new ContentManager(_virtualFileSystem);
|
||||||
_accountManager = new AccountManager(_libHacHorizonManager.RyujinxClient);
|
_accountManager = new AccountManager(_libHacHorizonManager.RyujinxClient, Program.CommandLineProfile);
|
||||||
_userChannelPersistence = new UserChannelPersistence();
|
_userChannelPersistence = new UserChannelPersistence();
|
||||||
|
|
||||||
// Instantiate GUI objects.
|
// Instantiate GUI objects.
|
||||||
|
|
Reference in a new issue