diff --git a/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs b/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs index c3516d13b7..edd35b2182 100644 --- a/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs +++ b/src/Games/NexusMods.Games.RedEngine/RedModDeployTool.cs @@ -1,7 +1,9 @@ using System.Reflection; using CliWrap; +using Microsoft.Extensions.Logging; using NexusMods.Abstractions.GameLocators; using NexusMods.Abstractions.Games.DTO; +using NexusMods.Abstractions.Games.Stores.Steam; using NexusMods.Abstractions.Loadouts; using NexusMods.Games.Generic; using NexusMods.Paths; @@ -13,9 +15,11 @@ public class RedModDeployTool : ITool { private readonly GameToolRunner _toolRunner; private readonly TemporaryFileManager _temporaryFileManager; + private readonly ILogger _logger; - public RedModDeployTool(GameToolRunner toolRunner, TemporaryFileManager temporaryFileManager) + public RedModDeployTool(GameToolRunner toolRunner, TemporaryFileManager temporaryFileManager, ILogger logger) { + _logger = logger; _toolRunner = toolRunner; _temporaryFileManager = temporaryFileManager; } @@ -42,8 +46,15 @@ public async Task Execute(Loadout.ReadOnly loadout, CancellationToken cancellati } else { - await using var batchPath = await ExtractTemporaryDeployScript(); - await _toolRunner.ExecuteAsync(loadout, Cli.Wrap(batchPath.ToString()), true, cancellationToken); + if (loadout.InstallationInstance.LocatorResultMetadata is SteamLocatorResultMetadata) + { + await using var batchPath = await ExtractTemporaryDeployScript(); + await _toolRunner.ExecuteAsync(loadout, Cli.Wrap(batchPath.ToString()), true, cancellationToken); + } + else + { + _logger.LogWarning("Skip running redmod, it's only supported for Steam on Linux at the moment"); + } } }