aboutsummaryrefslogtreecommitdiff
path: root/build-tool/scripts/docker-copy-to-host.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build-tool/scripts/docker-copy-to-host.sh')
-rwxr-xr-xbuild-tool/scripts/docker-copy-to-host.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/build-tool/scripts/docker-copy-to-host.sh b/build-tool/scripts/docker-copy-to-host.sh
new file mode 100755
index 0000000000..bb120462e5
--- /dev/null
+++ b/build-tool/scripts/docker-copy-to-host.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+#
+# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+# Script which copies a file or directory from the /home/arm-user/ directory in Docker to the host machine
+# This script creates a directory called 'docker_output' in the current directory and places the copied contents there
+# Takes two arguments:
+# 1. Name of created Docker image i.e. "--tag <name:tag>" provided at 'docker build' stage (tag is optional in image naming)
+# 2. Relative path to file or directory to copy from the Docker /home/arm-user/ directory
+#
+# Examples:
+# 1. Copy the tarball of the aarch64 build from the /home/arm-user/ directory
+# ./scripts/docker-copy-to-host.sh armnn_image armnn_aarch64_build.tar.gz
+# 2. Copy the unarchived Arm NN build
+# ./scripts/docker-copy-to-host.sh armnn_image build/armnn
+# 3. Copy the unarchived ACL build
+# ./scripts/docker-copy-to-host.sh armnn_image build/acl
+
+set -o nounset # Catch references to undefined variables.
+set -o pipefail # Catch non zero exit codes within pipelines.
+set -o errexit # Catch and propagate non zero exit codes.
+
+image_name="$1"
+file_path="$2"
+
+name=$(basename "$0")
+
+echo "***** $name: Copying file(s) from path /home/arm-user/$file_path inside Docker image '$image_name' to host *****"
+
+echo -e "\n***** Creating directory docker_output on host *****"
+mkdir -p docker_output
+
+# Cleanup old 'armnn_temp' container in case a previous run of this script was not successful
+docker rm --force armnn_temp 2> /dev/null
+
+echo -e "\n***** Creating temporary Docker container named armnn_temp using Docker image '$image_name' *****"
+docker create --interactive --tty --name armnn_temp "$image_name" bash > /dev/null
+
+echo -e "\n***** Running Docker command: docker cp armnn_temp:/home/arm-user/$file_path ./docker_output *****"
+docker cp armnn_temp:/home/arm-user/"$file_path" ./docker_output > /dev/null
+
+echo -e "\n***** Successfully copied file(s) to host in directory docker_output *****"
+
+# Remove temporary docker container 'armnn_temp'
+docker rm --force armnn_temp > /dev/null
+
+echo -e "\n***** Deleted temporary Docker container armnn_temp *****" \ No newline at end of file