@@ -93,7 +93,10 @@ struct AWSLambdaPackager: CommandPlugin {
93
93
arguments: [ " run " , " --rm " , " --pull " , " always " , " -v " , " \( packageDirectory. string) :/workspace " , " -w " , " /workspace " , baseImage, " bash " , " -cl " , buildOutputPathCommand] ,
94
94
logLevel: verboseLogging ? . debug : . silent
95
95
)
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) )
97
100
98
101
// build the products
99
102
var builtProducts = [ LambdaProduct: Path] ( )
@@ -107,7 +110,7 @@ struct AWSLambdaPackager: CommandPlugin {
107
110
)
108
111
let productPath = buildOutputPath. appending ( product. name)
109
112
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) \" " )
111
114
throw Errors . productExecutableNotFound ( product. name)
112
115
}
113
116
builtProducts [ . init( product) ] = productPath
@@ -219,7 +222,7 @@ struct AWSLambdaPackager: CommandPlugin {
219
222
print ( _output)
220
223
fflush ( stdout)
221
224
}
222
- output += _output
225
+ output += _output + " \n "
223
226
}
224
227
225
228
let pipe = Pipe ( )
@@ -364,6 +367,7 @@ private enum Errors: Error, CustomStringConvertible {
364
367
case unknownProduct( String )
365
368
case productExecutableNotFound( String )
366
369
case failedWritingDockerfile
370
+ case failedParsingDockerOutput( String )
367
371
case processFailed( [ String ] , Int32 )
368
372
369
373
var description : String {
@@ -378,6 +382,8 @@ private enum Errors: Error, CustomStringConvertible {
378
382
return " product executable not found ' \( product) ' "
379
383
case . failedWritingDockerfile:
380
384
return " failed writing dockerfile "
385
+ case . failedParsingDockerOutput( let output) :
386
+ return " failed parsing docker output: ' \( output) ' "
381
387
case . processFailed( let arguments, let code) :
382
388
return " \( arguments. joined ( separator: " " ) ) failed with code \( code) "
383
389
}
0 commit comments