Added exit code to message for exitedWithNonZeroStatus error
The SubprocessError type nicely encapsulates the errors that come from the (deprecated) Shell code. However, when the process being called exits with a non-zero exit code and output no other info to stdout or stderr, the description of the error is empty for the calling code.
Example code:
do {
_ = try Shell(["/usr/bin/false"]).exec()
} catch {
os_log("Error description was: '\(error.localizedDescription)'")
if let exitError = error as? SubprocessError,
case .exitedWithNonZeroStatus(let exitCode, let text) = exitError {
os_log("Exit code was: \(exitCode); text was '\(text)'")
}
}
Actual output:
Error description was: ''
Exit code was: 1; text was ''
Expected output (something like this):
Error description was: 'Process exited with code 1'
Exit code was: 1; text was ''
Current usages of . exitedWithNonZeroStatus: https://github.com/jamf/Subprocess/blob/5568e4283200c4fe305158a94ff69355b4c9da25/Sources/Subprocess/Shell.swift#L110 https://github.com/jamf/Subprocess/blob/5568e4283200c4fe305158a94ff69355b4c9da25/Sources/Subprocess/Shell.swift#L154
Current code that converts the error to text: https://github.com/jamf/Subprocess/blob/5568e4283200c4fe305158a94ff69355b4c9da25/Sources/Subprocess/Errors.swift#L55