From dc985482699e71c30a604a9fdb48fe378fb2287f Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 24 Jun 2024 16:33:15 +0800 Subject: [PATCH] Set `Environment.ExitCode` if there is a `CliUsaeException` or external error. Resovle #20090 --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs | 1 + .../Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index 5d916931bf..3c9aa74910 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -83,6 +83,7 @@ public class CliService : ITransientDependency catch (CliUsageException usageException) { Logger.LogWarning(usageException.Message); + Environment.ExitCode = 1; } catch (Exception ex) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs index 804f0688a3..8c5f40506d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs @@ -12,12 +12,12 @@ public class CmdHelper : ICmdHelper, ITransientDependency private const int SuccessfulExitCode = 0; protected AbpCliOptions CliOptions { get; } - + public CmdHelper(IOptionsSnapshot cliOptions) { CliOptions = cliOptions.Value; } - + public void Open(string pathOrUrl) { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) @@ -43,7 +43,7 @@ public class CmdHelper : ICmdHelper, ITransientDependency { HideNewCommandWindow(procStartInfo); } - + Process.Start(procStartInfo)?.WaitForExit(); } @@ -74,6 +74,7 @@ public class CmdHelper : ICmdHelper, ITransientDependency process?.WaitForExit(); exitCode = process.ExitCode; + Environment.ExitCode = exitCode; } } @@ -144,6 +145,7 @@ public class CmdHelper : ICmdHelper, ITransientDependency process.WaitForExit(); exitCode = process.ExitCode; + Environment.ExitCode = exitCode; } return output.Trim(); @@ -160,7 +162,7 @@ public class CmdHelper : ICmdHelper, ITransientDependency { procStartInfo.WorkingDirectory = workingDirectory; } - + if (CliOptions.AlwaysHideExternalCommandOutput) { HideNewCommandWindow(procStartInfo);