From ab3bc86ef556136ea20eb72a0e2554e154d25565 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sun, 11 Aug 2024 14:48:24 -0500 Subject: [PATCH] Fix server script running --- .../Services/ServerProcessService.cs | 63 +++++++++---------- 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/LANCommander.Server/Services/ServerProcessService.cs b/LANCommander.Server/Services/ServerProcessService.cs index 40f61c61..51cfd733 100644 --- a/LANCommander.Server/Services/ServerProcessService.cs +++ b/LANCommander.Server/Services/ServerProcessService.cs @@ -175,31 +175,27 @@ namespace LANCommander.Server.Services Logger.Info("Starting server \"{ServerName}\" for game {GameName}", server.Name, server.Game?.Title); - await Task.Run(() => + foreach (var serverScript in server.Scripts.Where(s => s.Type == Data.Enums.ScriptType.BeforeStart)) { - foreach (var serverScript in server.Scripts.Where(s => s.Type == Data.Enums.ScriptType.BeforeStart)) + try { - try - { - var script = new PowerShellScript(); + var script = new PowerShellScript(SDK.Enums.ScriptType.BeforeStart); - // script.AddVariable("Server", Mapper.Map(server)); + // script.AddVariable("Server", Mapper.Map(server)); - script.UseWorkingDirectory(server.WorkingDirectory); - script.UseInline(serverScript.Contents); - script.UseShellExecute(); + script.UseWorkingDirectory(server.WorkingDirectory); + script.UseInline(serverScript.Contents); + script.UseShellExecute(); - Logger.Info("Executing script \"{ScriptName}\"", serverScript.Name); + Logger.Info("Executing script \"{ScriptName}\"", serverScript.Name); - script.Execute(); - } - catch (Exception ex) - { - Logger.Error(ex, "Error running script \"{ScriptName}\" for server \"{ServerName}\"", serverScript.Name, server.Name); - } + await script.ExecuteAsync(); } - }); - + catch (Exception ex) + { + Logger.Error(ex, "Error running script \"{ScriptName}\" for server \"{ServerName}\"", serverScript.Name, server.Name); + } + } var process = new Process(); @@ -319,30 +315,27 @@ namespace LANCommander.Server.Services LogFileMonitors.Remove(server.Id); } - await Task.Run(() => + foreach (var serverScript in server.Scripts.Where(s => s.Type == Data.Enums.ScriptType.AfterStop)) { - foreach (var serverScript in server.Scripts.Where(s => s.Type == Data.Enums.ScriptType.AfterStop)) + try { - try - { - var script = new PowerShellScript(); + var script = new PowerShellScript(SDK.Enums.ScriptType.AfterStop); - // script.AddVariable("Server", Mapper.Map(server)); + // script.AddVariable("Server", Mapper.Map(server)); - script.UseWorkingDirectory(server.WorkingDirectory); - script.UseInline(serverScript.Contents); - script.UseShellExecute(); + script.UseWorkingDirectory(server.WorkingDirectory); + script.UseInline(serverScript.Contents); + script.UseShellExecute(); - Logger.Info("Executing script \"{ScriptName}\"", serverScript.Name); + Logger.Info("Executing script \"{ScriptName}\"", serverScript.Name); - script.Execute(); - } - catch (Exception ex) - { - Logger.Error(ex, "Error running script \"{ScriptName}\" for server \"{ServerName}\"", serverScript.Name, server.Name); - } + await script.ExecuteAsync(); } - }); + catch (Exception ex) + { + Logger.Error(ex, "Error running script \"{ScriptName}\" for server \"{ServerName}\"", serverScript.Name, server.Name); + } + } OnStatusUpdate?.Invoke(this, new ServerStatusUpdateEventArgs(server, ServerProcessStatus.Stopped)); }