diff --git a/UpdateWorker.cs b/UpdateWorker.cs index 8a6466c..0fb85e1 100644 --- a/UpdateWorker.cs +++ b/UpdateWorker.cs @@ -3,6 +3,9 @@ namespace ServiceUpdater; public sealed class UpdateWorker(UpdaterConfig config) { + + private int LastExitCode { get; set; } + public async IAsyncEnumerable UpdateService(string serviceName) { yield return $"Starting update for {serviceName}"; @@ -10,13 +13,14 @@ public sealed class UpdateWorker(UpdaterConfig config) { yield return line; } + if (LastExitCode != 0) + yield break; + yield return $"Downloaded changes for {serviceName}"; await foreach (var line in RunProcess(serviceName, "compose up -d --remove-orphans")) { yield return line; } - - yield return $"Successfully updated {serviceName}"; } private async IAsyncEnumerable RunProcess(string folder, string arguments) { @@ -48,11 +52,12 @@ public sealed class UpdateWorker(UpdaterConfig config) { else { var line = await error; if (line == null) break; - yield return "[ERR] " + line; + yield return line; error = process.StandardError.ReadLineAsync(); } } await process.WaitForExitAsync(); + LastExitCode = process.ExitCode; } } \ No newline at end of file