aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/ManagedFileSystem.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-10-04 14:51:26 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-10-04 14:51:26 -0400
commit983b51e0830ece26c1bd8445359fda14f0f99925 (patch)
treeee7db0ab4d28771a719402d65c86c16a931d0c96 /Emby.Server.Implementations/IO/ManagedFileSystem.cs
parenta5b82cd2ec9b03e949ab79791dc6c0469390c085 (diff)
reduce socket activity
Diffstat (limited to 'Emby.Server.Implementations/IO/ManagedFileSystem.cs')
-rw-r--r--Emby.Server.Implementations/IO/ManagedFileSystem.cs21
1 files changed, 21 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/IO/ManagedFileSystem.cs b/Emby.Server.Implementations/IO/ManagedFileSystem.cs
index 0d85a977c..125d9e980 100644
--- a/Emby.Server.Implementations/IO/ManagedFileSystem.cs
+++ b/Emby.Server.Implementations/IO/ManagedFileSystem.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
@@ -24,12 +25,14 @@ namespace Emby.Server.Implementations.IO
private string _tempPath;
private SharpCifsFileSystem _sharpCifsFileSystem;
+ private IEnvironmentInfo _environmentInfo;
public ManagedFileSystem(ILogger logger, IEnvironmentInfo environmentInfo, string tempPath)
{
Logger = logger;
_supportsAsyncFileStreams = true;
_tempPath = tempPath;
+ _environmentInfo = environmentInfo;
// On Linux, this needs to be true or symbolic links are ignored
EnableFileSystemRequestConcat = environmentInfo.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.Windows &&
@@ -1051,7 +1054,25 @@ namespace Emby.Server.Implementations.IO
public virtual void SetExecutable(string path)
{
+ if (_environmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.OSX)
+ {
+ RunProcess("chmod", "+x \"" + path + "\"", GetDirectoryName(path));
+ }
+ }
+ private void RunProcess(string path, string args, string workingDirectory)
+ {
+ using (var process = Process.Start(new ProcessStartInfo
+ {
+ Arguments = args,
+ FileName = path,
+ CreateNoWindow = true,
+ WorkingDirectory = workingDirectory,
+ WindowStyle = ProcessWindowStyle.Normal
+ }))
+ {
+ process.WaitForExit();
+ }
}
}
}