aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx/Modules/Updater/Updater.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx/Modules/Updater/Updater.cs')
-rw-r--r--Ryujinx/Modules/Updater/Updater.cs21
1 files changed, 12 insertions, 9 deletions
diff --git a/Ryujinx/Modules/Updater/Updater.cs b/Ryujinx/Modules/Updater/Updater.cs
index 194d35e5..0a1cb53b 100644
--- a/Ryujinx/Modules/Updater/Updater.cs
+++ b/Ryujinx/Modules/Updater/Updater.cs
@@ -387,16 +387,19 @@ namespace Ryujinx.Modules
worker.Start();
}
- [DllImport("libc", SetLastError = true)]
- private static extern int chmod(string path, uint mode);
-
- private static void SetUnixPermissions()
+ private static void SetFileExecutable(string path)
{
- string ryuBin = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Ryujinx");
-
- if (!OperatingSystem.IsWindows())
+ const UnixFileMode ExecutableFileMode = UnixFileMode.UserExecute |
+ UnixFileMode.UserWrite |
+ UnixFileMode.UserRead |
+ UnixFileMode.GroupRead |
+ UnixFileMode.GroupWrite |
+ UnixFileMode.OtherRead |
+ UnixFileMode.OtherWrite;
+
+ if (!OperatingSystem.IsWindows() && File.Exists(path))
{
- chmod(ryuBin, 493);
+ File.SetUnixFileMode(path, ExecutableFileMode);
}
}
@@ -519,7 +522,7 @@ namespace Ryujinx.Modules
Directory.Delete(UpdateDir, true);
- SetUnixPermissions();
+ SetFileExecutable(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Ryujinx"));
updateDialog.MainText.Text = "Update Complete!";
updateDialog.SecondaryText.Text = "Do you want to restart Ryujinx now?";