@@ -93,7 +93,10 @@ struct AWSLambdaPackager: CommandPlugin {
9393 arguments: [ " run " , " --rm " , " --pull " , " always " , " -v " , " \( packageDirectory. string) :/workspace " , " -w " , " /workspace " , baseImage, " bash " , " -cl " , buildOutputPathCommand] ,
9494 logLevel: verboseLogging ? . debug : . silent
9595 )
96- let buildOutputPath = Path ( dockerBuildOutputPath. replacingOccurrences ( of: " /workspace " , with: packageDirectory. string) )
96+ guard let buildPathOutput = dockerBuildOutputPath. split ( separator: " \n " ) . last else {
97+ throw Errors . failedParsingDockerOutput ( dockerBuildOutputPath)
98+ }
99+ let buildOutputPath = Path ( buildPathOutput. replacingOccurrences ( of: " /workspace " , with: packageDirectory. string) )
97100
98101 // build the products
99102 var builtProducts = [ LambdaProduct: Path] ( )
@@ -107,7 +110,7 @@ struct AWSLambdaPackager: CommandPlugin {
107110 )
108111 let productPath = buildOutputPath. appending ( product. name)
109112 guard FileManager . default. fileExists ( atPath: productPath. string) else {
110- print ( " expected ' \( product. name) ' binary at \" \( productPath. string) \" " )
113+ Diagnostics . error ( " expected ' \( product. name) ' binary at \" \( productPath. string) \" " )
111114 throw Errors . productExecutableNotFound ( product. name)
112115 }
113116 builtProducts [ . init( product) ] = productPath
@@ -219,7 +222,7 @@ struct AWSLambdaPackager: CommandPlugin {
219222 print ( _output)
220223 fflush ( stdout)
221224 }
222- output += _output
225+ output += _output + " \n "
223226 }
224227
225228 let pipe = Pipe ( )
@@ -364,6 +367,7 @@ private enum Errors: Error, CustomStringConvertible {
364367 case unknownProduct( String )
365368 case productExecutableNotFound( String )
366369 case failedWritingDockerfile
370+ case failedParsingDockerOutput( String )
367371 case processFailed( [ String ] , Int32 )
368372
369373 var description : String {
@@ -378,6 +382,8 @@ private enum Errors: Error, CustomStringConvertible {
378382 return " product executable not found ' \( product) ' "
379383 case . failedWritingDockerfile:
380384 return " failed writing dockerfile "
385+ case . failedParsingDockerOutput( let output) :
386+ return " failed parsing docker output: ' \( output) ' "
381387 case . processFailed( let arguments, let code) :
382388 return " \( arguments. joined ( separator: " " ) ) failed with code \( code) "
383389 }
0 commit comments