From 7db74b01fba147402abe0193fc87f3af2c3cabcc Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sun, 16 Sep 2018 21:37:09 -0400 Subject: [PATCH] Fix executables not having +x set on Linux --- .../Components/Byond/PosixByondInstaller.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Byond/PosixByondInstaller.cs b/src/Tgstation.Server.Host/Components/Byond/PosixByondInstaller.cs index 19b62b0795..e26aab8da4 100644 --- a/src/Tgstation.Server.Host/Components/Byond/PosixByondInstaller.cs +++ b/src/Tgstation.Server.Host/Components/Byond/PosixByondInstaller.cs @@ -103,8 +103,11 @@ namespace Tgstation.Server.Host.Components.Byond //need to add $ORIGIN to LD_LIBRARY_PATH const string StandardScript = "#!/bin/sh\nexport LD_LIBRARY_PATH=\"\\$ORIGIN:$LD_LIBRARY_PATH\"\nBASEDIR=$(dirname \"$0\")\nexec \"$BASEDIR/{0}\" \"$@\"\n"; - var dreamDaemonScript = String.Format(CultureInfo.InvariantCulture, StandardScript, "DreamDaemon"); - var dreamMakerScript = String.Format(CultureInfo.InvariantCulture, StandardScript, "DreamMaker"); + const string DreamDaemonExecutableName = "DreamDaemon"; + const string DreamMakerExecutableName = "DreamMaker"; + + var dreamDaemonScript = String.Format(CultureInfo.InvariantCulture, StandardScript, DreamDaemonExecutableName); + var dreamMakerScript = String.Format(CultureInfo.InvariantCulture, StandardScript, DreamMakerExecutableName); async Task WriteAndMakeExecutable(string fullPath, string script) { @@ -114,7 +117,12 @@ namespace Tgstation.Server.Host.Components.Byond var basePath = ioManager.ConcatPath(path, ByondManager.BinPath); - return Task.WhenAll(WriteAndMakeExecutable(ioManager.ConcatPath(basePath, DreamDaemonName), dreamDaemonScript), WriteAndMakeExecutable(ioManager.ConcatPath(basePath, DreamMakerName), dreamMakerScript)); + var task = Task.WhenAll(WriteAndMakeExecutable(ioManager.ConcatPath(basePath, DreamDaemonName), dreamDaemonScript), WriteAndMakeExecutable(ioManager.ConcatPath(basePath, DreamMakerName), dreamMakerScript)); + + postWriteHandler.HandleWrite(ioManager.ConcatPath(basePath, DreamDaemonExecutableName)); + postWriteHandler.HandleWrite(ioManager.ConcatPath(basePath, DreamMakerExecutableName)); + + return task; } } }