mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-03-14 22:40:18 +00:00
Update mime database after installing new types
Wait until logging is available before registering mime types
This commit is contained in:
parent
eaf6c0cfca
commit
d10ef21924
2 changed files with 58 additions and 11 deletions
|
@ -43,16 +43,37 @@ namespace Ryujinx.Ava
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share", "mime", "packages", "Ryujinx.xml")))
|
string mimeDbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share", "mime");
|
||||||
|
|
||||||
|
if (!File.Exists(Path.Combine(mimeDbPath, "packages", "Ryujinx.xml")))
|
||||||
{
|
{
|
||||||
string mimeTypesFile = Path.Combine(ReleaseInformation.GetBaseApplicationDirectory(), "mime", "Ryujinx.xml");
|
string mimeTypesFile = Path.Combine(ReleaseInformation.GetBaseApplicationDirectory(), "mime", "Ryujinx.xml");
|
||||||
using Process mimeProcess = new();
|
using Process mimeProcess = new();
|
||||||
|
|
||||||
mimeProcess.StartInfo.FileName = "xdg-mime";
|
mimeProcess.StartInfo.FileName = "xdg-mime";
|
||||||
mimeProcess.StartInfo.Arguments = $"install --mode user {mimeTypesFile}";
|
mimeProcess.StartInfo.Arguments = $"install --novendor --mode user {mimeTypesFile}";
|
||||||
|
|
||||||
mimeProcess.Start();
|
mimeProcess.Start();
|
||||||
mimeProcess.WaitForExit();
|
mimeProcess.WaitForExit();
|
||||||
|
|
||||||
|
if (mimeProcess.ExitCode != 0)
|
||||||
|
{
|
||||||
|
Logger.Error?.PrintMsg(LogClass.Application, $"Unable to install mime types. Make sure xdg-utils is installed. Process exited with code: {mimeProcess.ExitCode}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using Process updateMimeProcess = new();
|
||||||
|
|
||||||
|
updateMimeProcess.StartInfo.FileName = "update-mime-database";
|
||||||
|
updateMimeProcess.StartInfo.Arguments = mimeDbPath;
|
||||||
|
|
||||||
|
updateMimeProcess.Start();
|
||||||
|
updateMimeProcess.WaitForExit();
|
||||||
|
|
||||||
|
if (updateMimeProcess.ExitCode != 0)
|
||||||
|
{
|
||||||
|
Logger.Error?.PrintMsg(LogClass.Application, $"Could not update local mime database. Process exited with code: {updateMimeProcess.ExitCode}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,11 +81,6 @@ namespace Ryujinx.Ava
|
||||||
{
|
{
|
||||||
Version = ReleaseInformation.GetVersion();
|
Version = ReleaseInformation.GetVersion();
|
||||||
|
|
||||||
if (OperatingSystem.IsLinux())
|
|
||||||
{
|
|
||||||
RegisterMimeTypes();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (OperatingSystem.IsWindows() && !OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134))
|
if (OperatingSystem.IsWindows() && !OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134))
|
||||||
{
|
{
|
||||||
_ = MessageBoxA(IntPtr.Zero, "You are running an outdated version of Windows.\n\nStarting on June 1st 2022, Ryujinx will only support Windows 10 1803 and newer.\n", $"Ryujinx {Version}", MB_ICONWARNING);
|
_ = MessageBoxA(IntPtr.Zero, "You are running an outdated version of Windows.\n\nStarting on June 1st 2022, Ryujinx will only support Windows 10 1803 and newer.\n", $"Ryujinx {Version}", MB_ICONWARNING);
|
||||||
|
@ -122,6 +138,12 @@ namespace Ryujinx.Ava
|
||||||
// Initialize the logger system.
|
// Initialize the logger system.
|
||||||
LoggerModule.Initialize();
|
LoggerModule.Initialize();
|
||||||
|
|
||||||
|
// Register mime types on linux.
|
||||||
|
if (OperatingSystem.IsLinux())
|
||||||
|
{
|
||||||
|
RegisterMimeTypes();
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize Discord integration.
|
// Initialize Discord integration.
|
||||||
DiscordIntegrationModule.Initialize();
|
DiscordIntegrationModule.Initialize();
|
||||||
|
|
||||||
|
|
|
@ -82,16 +82,37 @@ namespace Ryujinx
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share", "mime", "packages", "Ryujinx.xml")))
|
string mimeDbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share", "mime");
|
||||||
|
|
||||||
|
if (!File.Exists(Path.Combine(mimeDbPath, "packages", "Ryujinx.xml")))
|
||||||
{
|
{
|
||||||
string mimeTypesFile = Path.Combine(ReleaseInformation.GetBaseApplicationDirectory(), "mime", "Ryujinx.xml");
|
string mimeTypesFile = Path.Combine(ReleaseInformation.GetBaseApplicationDirectory(), "mime", "Ryujinx.xml");
|
||||||
using Process mimeProcess = new();
|
using Process mimeProcess = new();
|
||||||
|
|
||||||
mimeProcess.StartInfo.FileName = "xdg-mime";
|
mimeProcess.StartInfo.FileName = "xdg-mime";
|
||||||
mimeProcess.StartInfo.Arguments = $"install --mode user {mimeTypesFile}";
|
mimeProcess.StartInfo.Arguments = $"install --novendor --mode user {mimeTypesFile}";
|
||||||
|
|
||||||
mimeProcess.Start();
|
mimeProcess.Start();
|
||||||
mimeProcess.WaitForExit();
|
mimeProcess.WaitForExit();
|
||||||
|
|
||||||
|
if (mimeProcess.ExitCode != 0)
|
||||||
|
{
|
||||||
|
Logger.Error?.PrintMsg(LogClass.Application, $"Unable to install mime types. Make sure xdg-utils is installed. Process exited with code: {mimeProcess.ExitCode}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using Process updateMimeProcess = new();
|
||||||
|
|
||||||
|
updateMimeProcess.StartInfo.FileName = "update-mime-database";
|
||||||
|
updateMimeProcess.StartInfo.Arguments = mimeDbPath;
|
||||||
|
|
||||||
|
updateMimeProcess.Start();
|
||||||
|
updateMimeProcess.WaitForExit();
|
||||||
|
|
||||||
|
if (updateMimeProcess.ExitCode != 0)
|
||||||
|
{
|
||||||
|
Logger.Error?.PrintMsg(LogClass.Application, $"Could not update local mime database. Process exited with code: {updateMimeProcess.ExitCode}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,8 +144,6 @@ namespace Ryujinx
|
||||||
// This ends up causing race condition and abort of XCB when a context is created by SPB (even if SPB do call XInitThreads).
|
// This ends up causing race condition and abort of XCB when a context is created by SPB (even if SPB do call XInitThreads).
|
||||||
if (OperatingSystem.IsLinux())
|
if (OperatingSystem.IsLinux())
|
||||||
{
|
{
|
||||||
RegisterMimeTypes();
|
|
||||||
|
|
||||||
XInitThreads();
|
XInitThreads();
|
||||||
Environment.SetEnvironmentVariable("GDK_BACKEND", "x11");
|
Environment.SetEnvironmentVariable("GDK_BACKEND", "x11");
|
||||||
setenv("GDK_BACKEND", "x11", 1);
|
setenv("GDK_BACKEND", "x11", 1);
|
||||||
|
@ -171,6 +190,12 @@ namespace Ryujinx
|
||||||
// Initialize the logger system.
|
// Initialize the logger system.
|
||||||
LoggerModule.Initialize();
|
LoggerModule.Initialize();
|
||||||
|
|
||||||
|
// Register mime types on linux.
|
||||||
|
if (OperatingSystem.IsLinux())
|
||||||
|
{
|
||||||
|
RegisterMimeTypes();
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize Discord integration.
|
// Initialize Discord integration.
|
||||||
DiscordIntegrationModule.Initialize();
|
DiscordIntegrationModule.Initialize();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue