Skip to content

Commit 13e8e3c

Browse files
committed
Update throwing condition in case of error in execution
1 parent 9b43b22 commit 13e8e3c

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

Sources/BashCmd.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,18 @@ public struct BashCmd {
7171

7272
// Read stdout stream and create string from it
7373
let stdoutData = stdout.fileHandleForReading.readDataToEndOfFile()
74-
let stdoutString = String(data:stdoutData, encoding:String.Encoding.utf8)
74+
let stdoutString = String(data:stdoutData, encoding:String.Encoding.utf8) ?? ""
7575

7676
// Read stderr steam an create string from it
7777
let stderrData = stderr.fileHandleForReading.readDataToEndOfFile()
78-
let stderrString = String(data: stderrData, encoding: String.Encoding.utf8)
78+
let stderrString = String(data: stderrData, encoding: String.Encoding.utf8) ?? ""
7979

8080
// If stderr isn't empty, throw a BashException with stderr and stdout
81-
if let stderrString = stderrString, stderrString != "" {
82-
throw BashException(stderr:stderrString, stdout:stdoutString ?? "")
81+
if process.terminationStatus != 0 {
82+
throw BashException(stderr:stderrString, stdout:stdoutString)
8383
}
8484

85+
8586
// If we are here, it means that everything went fine
8687
// Prepare the stdout string according to the outputType given
8788
switch outputType {
@@ -90,7 +91,7 @@ public struct BashCmd {
9091
case .raw:
9192
return stdoutString
9293
case .whiteSpacesTrimmed:
93-
return stdoutString?.trimmingCharactersEachNewLine(in: .whitespacesAndNewlines)
94+
return stdoutString.trimmingCharactersEachNewLine(in: .whitespacesAndNewlines)
9495
}
9596
default:
9697
return nil

0 commit comments

Comments
 (0)