aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-boot2qt/files/qbsp/toolchain_installscript.qs24
1 files changed, 21 insertions, 3 deletions
diff --git a/meta-boot2qt/files/qbsp/toolchain_installscript.qs b/meta-boot2qt/files/qbsp/toolchain_installscript.qs
index 0e8d4618..69b357ae 100644
--- a/meta-boot2qt/files/qbsp/toolchain_installscript.qs
+++ b/meta-boot2qt/files/qbsp/toolchain_installscript.qs
@@ -52,6 +52,7 @@ Component.prototype.createOperations = function()
container = true;
var path = installer.value("TargetDir") + installPath;
+ var docker;
if (!container) {
if (systemInfo.kernelType !== "winnt") {
var script = path + "/" + sdkFile;
@@ -62,6 +63,23 @@ Component.prototype.createOperations = function()
path = path.replace(/\\/g, "/");
}
} else {
+ var dockerPaths = [];
+ if (systemInfo.kernelType == "winnt")
+ dockerPaths.push("C:/Program Files/Docker/Docker/resources/bin/docker");
+ else if (systemInfo.kernelType == "darwin")
+ dockerPaths.push(
+ "/usr/local/bin/docker",
+ "/Applications/Docker.app/Contents/Resources/bin/docker",
+ "/opt/homebrew/bin/docker");
+ dockerPaths.push("docker");
+ for (i in dockerPaths) {
+ docker = dockerPaths[i];
+ var ret = installer.execute(docker, ["--version"]);
+ if (ret.length != 0) {
+ break;
+ }
+ }
+
component.addOperation("AppendFile", path + "/Dockerfile",
"\
FROM --platform=linux/@DOCKER_ARCH@ ubuntu:22.04\n\
@@ -71,15 +89,15 @@ COPY *.sh /\n\
RUN sh *.sh -d /opt/toolchain -y && rm *.sh\n");
component.addOperation("Execute", [
- "docker",
+ docker,
"build", path,
"-t", imageTag,
- "errormessage=Installer was unable to run docker. " +
+ "errormessage=Installer was unable to run docker.\n" +
"Make sure Docker is installed and running before continuing.\n\n" +
"The toolchain Docker container can also be created manually by running command:\n" +
"docker build " + path + " -t " + imageTag,
"UNDOEXECUTE",
- "docker", "image", "rm", "-f", imageTag]);
+ docker, "image", "rm", "-f", imageTag]);
path = "/opt/toolchain";
dockerPrefix = "docker://" + imageTag;
}