Preserve command line arguments when updater restarts Ryujinx (#1643)

Command line arguements are not preserved by the updater, and this causes an issue when the updater restarts Ryujinx in portable mode as it will create/use/modify its default directory instead.

This simple pull addresses the first part of #1594 

As far as the second part of the issue, where the updater perhaps overzealously deletes everything but log files and folders, which causes problems in portable installs with a user subfolder or something else inside the Ryujinx folder. 

Perhaps an UpdateList.txt containing a list of files that the updater deletes is included in the ryujinx.zip/tar.gz/etc and placed in the upacked directory for the updater to use upon the next upgrade.

The build system can run something like `forfiles /s /m *.txt /c "cmd /c echo @relpath"` or the correct command for the OS and include it in the distribution, or it could be generated by the updater itself.
This commit is contained in:
CeruleanSky 2020-10-29 18:07:10 -04:00 committed by GitHub
parent 423da5cc91
commit b5a760bde9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -45,6 +45,7 @@ namespace Ryujinx.Ui
{ {
string ryuName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "Ryujinx.exe" : "Ryujinx"; string ryuName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "Ryujinx.exe" : "Ryujinx";
string ryuExe = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ryuName); string ryuExe = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ryuName);
string ryuArg = String.Join(" ", Environment.GetCommandLineArgs());
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{ {
@ -52,7 +53,7 @@ namespace Ryujinx.Ui
unixFileInfo.FileAccessPermissions |= FileAccessPermissions.UserExecute; unixFileInfo.FileAccessPermissions |= FileAccessPermissions.UserExecute;
} }
Process.Start(ryuExe); Process.Start(ryuExe, ryuArg);
Environment.Exit(0); Environment.Exit(0);
} }