diff options
Diffstat (limited to 'Ryujinx.Ava')
| -rw-r--r-- | Ryujinx.Ava/Modules/Updater/Updater.cs | 8 | ||||
| -rw-r--r-- | Ryujinx.Ava/Program.cs | 54 | ||||
| -rw-r--r-- | Ryujinx.Ava/Ryujinx.Ava.csproj | 11 | ||||
| -rw-r--r-- | Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs | 2 |
4 files changed, 68 insertions, 7 deletions
diff --git a/Ryujinx.Ava/Modules/Updater/Updater.cs b/Ryujinx.Ava/Modules/Updater/Updater.cs index 7bf147fe..bc4760ba 100644 --- a/Ryujinx.Ava/Modules/Updater/Updater.cs +++ b/Ryujinx.Ava/Modules/Updater/Updater.cs @@ -95,7 +95,7 @@ namespace Ryujinx.Modules { using (HttpClient jsonClient = ConstructHttpClient()) { - string buildInfoURL = $"{GitHubApiURL}/repos/{ReleaseInformations.ReleaseChannelOwner}/{ReleaseInformations.ReleaseChannelRepo}/releases/latest"; + string buildInfoURL = $"{GitHubApiURL}/repos/{ReleaseInformation.ReleaseChannelOwner}/{ReleaseInformation.ReleaseChannelRepo}/releases/latest"; string fetchedJson = await jsonClient.GetStringAsync(buildInfoURL); JObject jsonRoot = JObject.Parse(fetchedJson); @@ -625,7 +625,7 @@ namespace Ryujinx.Modules return false; } - if (Program.Version.Contains("dirty") || !ReleaseInformations.IsValid()) + if (Program.Version.Contains("dirty") || !ReleaseInformation.IsValid()) { if (showWarnings) { @@ -640,7 +640,7 @@ namespace Ryujinx.Modules #else if (showWarnings) { - if (ReleaseInformations.IsFlatHubBuild()) + if (ReleaseInformation.IsFlatHubBuild()) { ContentDialogHelper.CreateWarningDialog(LocaleManager.Instance[LocaleKeys.UpdaterDisabledWarningTitle], LocaleManager.Instance[LocaleKeys.DialogUpdaterFlatpakNotSupportedMessage]); } @@ -711,4 +711,4 @@ namespace Ryujinx.Modules } } } -} +}
\ No newline at end of file diff --git a/Ryujinx.Ava/Program.cs b/Ryujinx.Ava/Program.cs index 836801c8..5d88466e 100644 --- a/Ryujinx.Ava/Program.cs +++ b/Ryujinx.Ava/Program.cs @@ -13,8 +13,10 @@ using Ryujinx.Ui.Common; using Ryujinx.Ui.Common.Configuration; using Ryujinx.Ui.Common.Helper; using System; +using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; +using System.Runtime.Versioning; using System.Threading.Tasks; namespace Ryujinx.Ava @@ -32,9 +34,51 @@ namespace Ryujinx.Ava private const uint MB_ICONWARNING = 0x30; + [SupportedOSPlatform("linux")] + static void RegisterMimeTypes() + { + if (ReleaseInformation.IsFlatHubBuild()) + { + return; + } + + 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"); + using Process mimeProcess = new(); + + mimeProcess.StartInfo.FileName = "xdg-mime"; + mimeProcess.StartInfo.Arguments = $"install --novendor --mode user {mimeTypesFile}"; + + mimeProcess.Start(); + 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}"); + } + } + } + public static void Main(string[] args) { - Version = ReleaseInformations.GetVersion(); + Version = ReleaseInformation.GetVersion(); if (OperatingSystem.IsWindows() && !OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134)) { @@ -93,6 +137,12 @@ namespace Ryujinx.Ava // Initialize the logger system. LoggerModule.Initialize(); + // Register mime types on linux. + if (OperatingSystem.IsLinux()) + { + RegisterMimeTypes(); + } + // Initialize Discord integration. DiscordIntegrationModule.Initialize(); @@ -218,4 +268,4 @@ namespace Ryujinx.Ava Logger.Shutdown(); } } -} +}
\ No newline at end of file diff --git a/Ryujinx.Ava/Ryujinx.Ava.csproj b/Ryujinx.Ava/Ryujinx.Ava.csproj index 3e3bdc8c..e63360d4 100644 --- a/Ryujinx.Ava/Ryujinx.Ava.csproj +++ b/Ryujinx.Ava/Ryujinx.Ava.csproj @@ -4,6 +4,7 @@ <RuntimeIdentifiers>win10-x64;osx-x64;linux-x64</RuntimeIdentifiers> <OutputType>Exe</OutputType> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <AssemblyName>Ryujinx</AssemblyName> <Version>1.0.0-dirty</Version> <DefineConstants Condition=" '$(ExtraDefineConstants)' != '' ">$(DefineConstants);$(ExtraDefineConstants)</DefineConstants> <RootNamespace>Ryujinx.Ava</RootNamespace> @@ -76,6 +77,16 @@ </Content> </ItemGroup> + <ItemGroup Condition="'$(RuntimeIdentifier)' == 'linux-x64'"> + <Content Include="..\distribution\linux\Ryujinx.sh"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> + <Content Include="..\distribution\linux\mime\Ryujinx.xml"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + <TargetPath>mime\Ryujinx.xml</TargetPath> + </Content> + </ItemGroup> + <ItemGroup> <AvaloniaResource Include="Ui\**\*.xaml"> <SubType>Designer</SubType> diff --git a/Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs b/Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs index 888e227c..514a8bb3 100644 --- a/Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs +++ b/Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs @@ -940,7 +940,7 @@ namespace Ryujinx.Ava.UI.ViewModels public static void OpenLogsFolder() { - string logPath = Path.Combine(ReleaseInformations.GetBaseApplicationDirectory(), "Logs"); + string logPath = Path.Combine(ReleaseInformation.GetBaseApplicationDirectory(), "Logs"); new DirectoryInfo(logPath).Create(); |
