mirror of
https://github.com/Readarr/Readarr
synced 2026-01-01 05:03:13 +01:00
Fixed binary execute permissions for osx and Radarr
Signed-off-by: Robin Dadswell <robin@dadswell.email>
This commit is contained in:
parent
4236afe850
commit
70c572534a
7 changed files with 26 additions and 7 deletions
|
|
@ -37,6 +37,7 @@ public static StringComparison PathStringComparison
|
|||
public abstract long? GetAvailableSpace(string path);
|
||||
public abstract void InheritFolderPermissions(string filename);
|
||||
public abstract void SetEveryonePermissions(string filename);
|
||||
public abstract void SetFilePermissions(string path, string mask, string group);
|
||||
public abstract void SetPermissions(string path, string mask, string group);
|
||||
public abstract void CopyPermissions(string sourcePath, string targetPath);
|
||||
public abstract long? GetTotalSize(string path);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ public interface IDiskProvider
|
|||
long? GetAvailableSpace(string path);
|
||||
void InheritFolderPermissions(string filename);
|
||||
void SetEveryonePermissions(string filename);
|
||||
void SetFilePermissions(string path, string mask, string group);
|
||||
void SetPermissions(string path, string mask, string group);
|
||||
void CopyPermissions(string sourcePath, string targetPath);
|
||||
long? GetTotalSize(string path);
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ private void InstallUpdate(UpdatePackage updatePackage)
|
|||
// Set executable flag on update app
|
||||
if (OsInfo.IsOsx || (OsInfo.IsLinux && PlatformInfo.IsNetCore))
|
||||
{
|
||||
_diskProvider.SetPermissions(_appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime), "0755", null);
|
||||
_diskProvider.SetFilePermissions(_appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime), "755", null);
|
||||
}
|
||||
|
||||
_logger.Info("Starting update client {0}", _appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime));
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ public void MonoDiskProviderFixtureTearDown()
|
|||
{
|
||||
Syscall.chmod(_tempPath, FilePermissions.S_IRUSR | FilePermissions.S_IWUSR);
|
||||
}
|
||||
|
||||
_tempPath = null;
|
||||
}
|
||||
}
|
||||
|
|
@ -55,7 +56,6 @@ protected override void SetWritePermissions(string path, bool writable)
|
|||
protected void SetWritePermissionsInternal(string path, bool writable, bool setgid)
|
||||
{
|
||||
// Remove Write permissions, we're still owner so we can clean it up, but we'll have to do that explicitly.
|
||||
|
||||
Stat stat;
|
||||
Syscall.stat(path, out stat);
|
||||
FilePermissions mode = stat.st_mode;
|
||||
|
|
@ -69,7 +69,6 @@ protected void SetWritePermissionsInternal(string path, bool writable, bool setg
|
|||
mode &= ~(FilePermissions.S_IWUSR | FilePermissions.S_IWGRP | FilePermissions.S_IWOTH);
|
||||
}
|
||||
|
||||
|
||||
if (setgid)
|
||||
{
|
||||
mode |= FilePermissions.S_ISGID;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
using NLog;
|
||||
using NzbDrone.Common.Disk;
|
||||
using NzbDrone.Common.EnsureThat;
|
||||
using NzbDrone.Common.EnvironmentInfo;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Common.Instrumentation;
|
||||
|
||||
|
|
@ -24,6 +25,7 @@ public class DiskProvider : DiskProviderBase
|
|||
private readonly IProcMountProvider _procMountProvider;
|
||||
private readonly ISymbolicLinkResolver _symLinkResolver;
|
||||
private readonly IRefLinkCreator _createRefLink;
|
||||
private readonly Logger _logger;
|
||||
|
||||
public DiskProvider(IProcMountProvider procMountProvider,
|
||||
ISymbolicLinkResolver symLinkResolver,
|
||||
|
|
@ -78,10 +80,15 @@ public override void SetEveryonePermissions(string filename)
|
|||
{
|
||||
}
|
||||
|
||||
public override void SetFilePermissions(string path, string mask, string group)
|
||||
{
|
||||
var permissions = NativeConvert.FromOctalPermissionString(mask);
|
||||
|
||||
SetPermissions(path, mask, group, permissions);
|
||||
}
|
||||
|
||||
public override void SetPermissions(string path, string mask, string group)
|
||||
{
|
||||
_logger.Debug("Setting permissions: {0} on {1}", mask, path);
|
||||
|
||||
var permissions = NativeConvert.FromOctalPermissionString(mask);
|
||||
|
||||
if (_fileSystem.File.Exists(path))
|
||||
|
|
@ -89,6 +96,13 @@ public override void SetPermissions(string path, string mask, string group)
|
|||
permissions = GetFilePermissions(permissions);
|
||||
}
|
||||
|
||||
SetPermissions(path, mask, group, permissions);
|
||||
}
|
||||
|
||||
protected void SetPermissions(string path, string mask, string group, FilePermissions permissions)
|
||||
{
|
||||
_logger.Debug("Setting permissions: {0} on {1}", mask, path);
|
||||
|
||||
// Preserve non-access permissions
|
||||
if (Syscall.stat(path, out var curStat) < 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ public void Start(string installationFolder, int processId)
|
|||
// Set executable flag on Readarr app
|
||||
if (OsInfo.IsOsx || (OsInfo.IsLinux && PlatformInfo.IsNetCore))
|
||||
{
|
||||
_diskProvider.SetPermissions(Path.Combine(installationFolder, "Readarr"), "0755", null);
|
||||
_diskProvider.SetFilePermissions(Path.Combine(installationFolder, "Readarr"), "755", null);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Abstractions;
|
||||
using System.Linq;
|
||||
|
|
@ -102,6 +102,10 @@ public override void SetEveryonePermissions(string filename)
|
|||
}
|
||||
}
|
||||
|
||||
public override void SetFilePermissions(string path, string mask, string group)
|
||||
{
|
||||
}
|
||||
|
||||
public override void SetPermissions(string path, string mask, string group)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue