From b1b64f5bf70442f348b93d2a1ba9537cd0a513e3 Mon Sep 17 00:00:00 2001 From: Caelan Sayler Date: Sun, 14 Jan 2024 16:30:09 +0000 Subject: [PATCH] pass return value from command --- src/Velopack.Vpk/Compat/RunnerFactory.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Velopack.Vpk/Compat/RunnerFactory.cs b/src/Velopack.Vpk/Compat/RunnerFactory.cs index 50c27fb3..26b8c645 100644 --- a/src/Velopack.Vpk/Compat/RunnerFactory.cs +++ b/src/Velopack.Vpk/Compat/RunnerFactory.cs @@ -17,18 +17,21 @@ public class RunnerFactory _config = config; } - public async Task CreateAndExecuteAsync(string commandName, T options) where T : BaseCommand + public async Task CreateAndExecuteAsync(string commandName, T options) where T : BaseCommand { _logger.LogInformation($"[bold]{Program.INTRO}[/]"); var runner = await CreateAsync(options); var method = typeof(ICommandRunner).GetMethod(commandName); try { await (Task) method.Invoke(runner, new object[] { options }); + return 0; } catch (Exception ex) when (ex is ProcessFailedException or UserInfoException) { // some exceptions are just user info / user error, so don't need a stack trace. _logger.Fatal($"[bold orange3]{ex.Message}[/]"); + return -1; } catch (Exception ex) { _logger.Fatal(ex, $"Command {commandName} had an exception."); + return -1; } }