fix steam redist missing on automatic download

This commit is contained in:
zznty
2023-04-22 21:22:46 +07:00
parent ba75b1583a
commit a426ad9e02

View File

@@ -30,7 +30,8 @@ namespace Torch.Server
private const string TOOL_DIR = "tool";
private const string TOOL_ZIP = "temp.zip";
private static readonly string TOOL_EXE = "DepotDownloader.exe";
private const string TOOL_ARGS = "-app 298740 -depot 298741 -dir \"{0}\"";
private const string TOOL_ARGS = "-app 298740 -depot {1} -dir \"{0}\"";
private static readonly int[] Depots = { 298741, 1004 };
private TorchServer _server;
internal Persistent<TorchConfig> ConfigPersistent { get; }
@@ -160,18 +161,26 @@ namespace Torch.Server
}
log.Info("Checking for DS updates.");
var steamCmdProc = new ProcessStartInfo(steamCmdExePath)
foreach (var depot in Depots)
{
Arguments = string.Format(TOOL_ARGS, configuration.GetValue("gamePath", "../")),
WorkingDirectory = path,
RedirectStandardOutput = true
};
var cmd = Process.Start(steamCmdProc)!;
await DownloadDepot(depot);
}
while (!cmd.HasExited)
async Task DownloadDepot(int depotId)
{
if (await cmd.StandardOutput.ReadLineAsync() is { } line)
log.Info(line);
var steamCmdProc = new ProcessStartInfo(steamCmdExePath)
{
Arguments = string.Format(TOOL_ARGS, configuration.GetValue("gamePath", "../"), depotId),
WorkingDirectory = path,
RedirectStandardOutput = true
};
var cmd = Process.Start(steamCmdProc)!;
while (!cmd.HasExited)
{
if (await cmd.StandardOutput.ReadLineAsync() is { } line)
log.Info(line);
}
}
}
}