Exit with appropriate exit code when providing version #1161
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This Pull Request updates the handling of the
--version&versionsubcommand to exit immediately with a0(successful) exit code, in scenarios that the version is correctly output.1(failure) will still be emitted when the version cannot be retrieved correctly.I've noticed this while outputting debug information in pipelines, as it causes the task to fail. I can always ignore the unsuccessful exit
|| trueetc, but I think outputting the correct exit code would be ideal.I did have a look at utilising the "Args" return to carry the exit code back to
Program.csfor handling the exiting of the application in unified manner, but it feels like a misuse of "Args" as they're intended to be client driven. If this approach is desired, from the structure of the application I would suggest moving the handling of version into aVersionServiceto unify how the handling of commands and subsequent exit codes are across the application. As the version logic is already different to the rest in where it is handled, I did not think this refactor would be desired. I am happy to refactor into a service if that feels more appropriate.