From aca768a8389ef5d1bdc3c632a472f2f8e6a7aef4 Mon Sep 17 00:00:00 2001 From: Fedor Korotkov Date: Fri, 10 Nov 2023 13:44:51 -0500 Subject: [PATCH] Print put errors from Docker Helpers (#654) * Print put errors from Docker Helpers * Update Sources/tart/Credentials/DockerConfigCredentialsProvider.swift Co-authored-by: Nikolay Edigaryev * Check output data is not empty --------- Co-authored-by: Nikolay Edigaryev --- .../Credentials/DockerConfigCredentialsProvider.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Sources/tart/Credentials/DockerConfigCredentialsProvider.swift b/Sources/tart/Credentials/DockerConfigCredentialsProvider.swift index e510282..7c5ba53 100644 --- a/Sources/tart/Credentials/DockerConfigCredentialsProvider.swift +++ b/Sources/tart/Credentials/DockerConfigCredentialsProvider.swift @@ -41,13 +41,18 @@ class DockerConfigCredentialsProvider: CredentialsProvider { process.waitUntilExit() + let outputData = try outPipe.fileHandleForReading.readToEnd() if !(process.terminationReason == .exit && process.terminationStatus == 0) { + if let outputData = outputData { + print(String(decoding: outputData, as: UTF8.self)) + } throw CredentialsProviderError.Failed(message: "Docker helper failed!") } + if outputData == nil || outputData?.count == 0 { + throw CredentialsProviderError.Failed(message: "Docker helper output is empty!") + } - let getOutput = try JSONDecoder().decode( - DockerGetOutput.self, from: outPipe.fileHandleForReading.readDataToEndOfFile() - ) + let getOutput = try JSONDecoder().decode(DockerGetOutput.self, from: outputData!) return (getOutput.Username, getOutput.Secret) }