Skip to content

Commit 05aa2e9

Browse files
committed
fix detection of container cli tool
1 parent e4bb09a commit 05aa2e9

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

Plugins/AWSLambdaBuilder/Plugin.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ struct AWSLambdaBuilder: CommandPlugin {
2828
let packageID: String = context.package.id
2929
let packageDisplayName = context.package.displayName
3030
let packageDirectory = context.package.directoryURL
31-
let dockerToolPath = try context.tool(named: "docker").url
3231
let zipToolPath = try context.tool(named: "zip").url
3332

3433
// extract arguments that require PluginContext to fully resolve
@@ -39,6 +38,18 @@ struct AWSLambdaBuilder: CommandPlugin {
3938
let productsArgument = argumentExtractor.extractOption(named: "products")
4039
let configurationArgument = argumentExtractor.extractOption(named: "configuration")
4140

41+
// Resolve the container CLI that matches the requested cross-compilation method.
42+
// The plugin sandbox can only run tools it resolves up front, so we must pick the right
43+
// binary here — `container` for `--cross-compile container`, `docker` otherwise. Extracting
44+
// these options only peeks them for the plugin; the original `arguments` (which the helper
45+
// re-parses) is still forwarded unchanged below.
46+
// `--container-cli` is a deprecated alias for `--cross-compile`.
47+
let crossCompileArgument = argumentExtractor.extractOption(named: "cross-compile")
48+
let containerCliArgument = argumentExtractor.extractOption(named: "container-cli")
49+
let crossCompileMethod = (crossCompileArgument.first ?? containerCliArgument.first)?.lowercased()
50+
let containerCLIToolName = crossCompileMethod == "container" ? "container" : "docker"
51+
let containerToolPath = try context.tool(named: containerCLIToolName).url
52+
4253
if let outputPath = outputPathArgument.first {
4354
#if os(Linux)
4455
var isDirectory: Bool = false
@@ -87,7 +98,7 @@ struct AWSLambdaBuilder: CommandPlugin {
8798
"--package-id", packageID,
8899
"--package-display-name", packageDisplayName,
89100
"--package-directory", packageDirectory.path(),
90-
"--docker-tool-path", dockerToolPath.path,
101+
"--docker-tool-path", containerToolPath.path,
91102
"--zip-tool-path", zipToolPath.path,
92103
] + arguments
93104

0 commit comments

Comments
 (0)