From 51d59f0f664cec58f17e3c0862f4ba534f85467a Mon Sep 17 00:00:00 2001 From: JustArchi Date: Wed, 2 Aug 2017 20:47:53 +0200 Subject: [PATCH] Fix Windows builds --- ArchiSteamFarm/ASF.cs | 7 +------ ArchiSteamFarm/OS.cs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ArchiSteamFarm/ASF.cs b/ArchiSteamFarm/ASF.cs index a0f835ec3..b66326c62 100644 --- a/ArchiSteamFarm/ASF.cs +++ b/ArchiSteamFarm/ASF.cs @@ -33,7 +33,6 @@ using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.JSON; using ArchiSteamFarm.Localization; -using Mono.Unix; namespace ArchiSteamFarm { internal static class ASF { @@ -214,11 +213,7 @@ namespace ArchiSteamFarm { if (IsUnixVersion(version)) { string executable = Path.Combine(targetDirectory, SharedInfo.AssemblyName); if (File.Exists(executable)) { - if (UnixFileSystemInfo.TryGetFileSystemEntry(executable, out UnixFileSystemInfo entry)) { - if (!entry.FileAccessPermissions.HasFlag(FileAccessPermissions.UserExecute)) { - entry.FileAccessPermissions = entry.FileAccessPermissions | FileAccessPermissions.UserExecute; - } - } + OS.UnixSetFileAccessExecutable(executable); } } diff --git a/ArchiSteamFarm/OS.cs b/ArchiSteamFarm/OS.cs index c4a188ad0..7a20620e6 100644 --- a/ArchiSteamFarm/OS.cs +++ b/ArchiSteamFarm/OS.cs @@ -23,8 +23,10 @@ */ using System; +using System.IO; using System.Runtime.InteropServices; using ArchiSteamFarm.Localization; +using Mono.Unix; namespace ArchiSteamFarm { internal static class OS { @@ -44,6 +46,16 @@ namespace ArchiSteamFarm { } } + internal static void UnixSetFileAccessExecutable(string path) { + if (!File.Exists(path) || !UnixFileSystemInfo.TryGetFileSystemEntry(path, out UnixFileSystemInfo entry)) { + return; + } + + if (!entry.FileAccessPermissions.HasFlag(FileAccessPermissions.UserExecute)) { + entry.FileAccessPermissions = entry.FileAccessPermissions | FileAccessPermissions.UserExecute; + } + } + private static void DisableQuickEditMode() { // http://stackoverflow.com/questions/30418886/how-and-why-does-quickedit-mode-in-command-prompt-freeze-applications IntPtr consoleHandle = NativeMethods.GetStdHandle(NativeMethods.StandardInputHandle);