diff --git a/src/Tgstation.Server.Api/Models/Internal/CompileJob.cs b/src/Tgstation.Server.Api/Models/Internal/CompileJob.cs
index add902e9cb..d31366048f 100644
--- a/src/Tgstation.Server.Api/Models/Internal/CompileJob.cs
+++ b/src/Tgstation.Server.Api/Models/Internal/CompileJob.cs
@@ -40,6 +40,11 @@ namespace Tgstation.Server.Api.Models.Internal
///
public string Output { get; set; }
+ ///
+ /// The Game folder the results were compiled into
+ ///
+ public Guid? OutputGuid { get; set; }
+
///
/// Exit code of DM. If
///
diff --git a/src/Tgstation.Server.Host/Components/DreamDaemon.cs b/src/Tgstation.Server.Host/Components/DreamDaemon.cs
index 6ca1a8fc6b..15926c884d 100644
--- a/src/Tgstation.Server.Host/Components/DreamDaemon.cs
+++ b/src/Tgstation.Server.Host/Components/DreamDaemon.cs
@@ -1,6 +1,4 @@
using System;
-using System.Diagnostics;
-using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
using Tgstation.Server.Api.Models;
@@ -51,12 +49,22 @@ namespace Tgstation.Server.Host.Components
/// The for
///
readonly IInstanceShutdownMethod instanceShutdownMethod;
+ ///
+ /// The for
+ ///
readonly IIOManager ioManager;
+ ///
+ /// The for
+ ///
+ readonly IDreamDaemonExecutor dreamDaemonExecutor;
+
+ ///
+ /// Used for write control to class variables
+ ///
+ readonly SemaphoreSlim semaphore;
readonly bool autoStart;
- readonly SemaphoreSlim semaphore;
-
DreamDaemonLaunchParameters currentLaunchParameters;
CancellationTokenSource watchdogCancellationTokenSource;
@@ -78,6 +86,7 @@ namespace Tgstation.Server.Host.Components
semaphore = new SemaphoreSlim(1);
}
+ ///
public void Dispose()
{
if (watchdogCancellationTokenSource != null)
@@ -97,22 +106,7 @@ namespace Tgstation.Server.Host.Components
return Task.CompletedTask;
}
}
-
- static string SecurityWord(DreamDaemonSecurity securityLevel)
- {
- switch (securityLevel)
- {
- case DreamDaemonSecurity.Safe:
- return "safe";
- case DreamDaemonSecurity.Trusted:
- return "trusted";
- case DreamDaemonSecurity.Ultrasafe:
- return "ultrasafe";
- default:
- throw new ArgumentOutOfRangeException(nameof(securityLevel), securityLevel, String.Format(CultureInfo.InvariantCulture, "Bad DreamDaemon security level: {0}", securityLevel));
- }
- }
-
+
async Task Watchdog(DreamDaemonLaunchParameters launchParameters, TaskCompletionSource