xref: /aosp_15_r20/external/armnn/build-tool/scripts/docker-copy-to-host.sh (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker#!/bin/bash
2*89c4ff92SAndroid Build Coastguard Worker#
3*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
4*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
5*89c4ff92SAndroid Build Coastguard Worker#
6*89c4ff92SAndroid Build Coastguard Worker
7*89c4ff92SAndroid Build Coastguard Worker# Script which copies a file or directory from the /home/arm-user/ directory in Docker to the host machine
8*89c4ff92SAndroid Build Coastguard Worker# This script creates a directory called 'docker_output' in the current directory and places the copied contents there
9*89c4ff92SAndroid Build Coastguard Worker# Takes two arguments:
10*89c4ff92SAndroid Build Coastguard Worker# 1. Name of created Docker image i.e. "--tag <name:tag>" provided at 'docker build' stage (tag is optional in image naming)
11*89c4ff92SAndroid Build Coastguard Worker# 2. Relative path to file or directory to copy from the Docker /home/arm-user/ directory
12*89c4ff92SAndroid Build Coastguard Worker#
13*89c4ff92SAndroid Build Coastguard Worker# Examples:
14*89c4ff92SAndroid Build Coastguard Worker# 1. Copy the tarball of the aarch64 build from the /home/arm-user/ directory
15*89c4ff92SAndroid Build Coastguard Worker#    ./scripts/docker-copy-to-host.sh armnn_image armnn_aarch64_build.tar.gz
16*89c4ff92SAndroid Build Coastguard Worker# 2. Copy the unarchived Arm NN build
17*89c4ff92SAndroid Build Coastguard Worker#    ./scripts/docker-copy-to-host.sh armnn_image build/armnn
18*89c4ff92SAndroid Build Coastguard Worker# 3. Copy the unarchived ACL build
19*89c4ff92SAndroid Build Coastguard Worker#    ./scripts/docker-copy-to-host.sh armnn_image build/acl
20*89c4ff92SAndroid Build Coastguard Worker
21*89c4ff92SAndroid Build Coastguard Workerset -o nounset  # Catch references to undefined variables.
22*89c4ff92SAndroid Build Coastguard Workerset -o pipefail # Catch non zero exit codes within pipelines.
23*89c4ff92SAndroid Build Coastguard Workerset -o errexit  # Catch and propagate non zero exit codes.
24*89c4ff92SAndroid Build Coastguard Worker
25*89c4ff92SAndroid Build Coastguard Workerimage_name="$1"
26*89c4ff92SAndroid Build Coastguard Workerfile_path="$2"
27*89c4ff92SAndroid Build Coastguard Worker
28*89c4ff92SAndroid Build Coastguard Workername=$(basename "$0")
29*89c4ff92SAndroid Build Coastguard Worker
30*89c4ff92SAndroid Build Coastguard Workerecho "***** $name: Copying file(s) from path /home/arm-user/$file_path inside Docker image '$image_name' to host *****"
31*89c4ff92SAndroid Build Coastguard Worker
32*89c4ff92SAndroid Build Coastguard Workerecho -e "\n***** Creating directory docker_output on host *****"
33*89c4ff92SAndroid Build Coastguard Workermkdir -p docker_output
34*89c4ff92SAndroid Build Coastguard Worker
35*89c4ff92SAndroid Build Coastguard Worker# Cleanup old 'armnn_temp' container in case a previous run of this script was not successful
36*89c4ff92SAndroid Build Coastguard Workerdocker rm --force armnn_temp 2> /dev/null
37*89c4ff92SAndroid Build Coastguard Worker
38*89c4ff92SAndroid Build Coastguard Workerecho -e "\n***** Creating temporary Docker container named armnn_temp using Docker image '$image_name' *****"
39*89c4ff92SAndroid Build Coastguard Workerdocker create --interactive --tty --name armnn_temp "$image_name" bash > /dev/null
40*89c4ff92SAndroid Build Coastguard Worker
41*89c4ff92SAndroid Build Coastguard Workerecho -e "\n***** Running Docker command: docker cp armnn_temp:/home/arm-user/$file_path ./docker_output *****"
42*89c4ff92SAndroid Build Coastguard Workerdocker cp armnn_temp:/home/arm-user/"$file_path" ./docker_output > /dev/null
43*89c4ff92SAndroid Build Coastguard Worker
44*89c4ff92SAndroid Build Coastguard Workerecho -e "\n***** Successfully copied file(s) to host in directory docker_output *****"
45*89c4ff92SAndroid Build Coastguard Worker
46*89c4ff92SAndroid Build Coastguard Worker# Remove temporary docker container 'armnn_temp'
47*89c4ff92SAndroid Build Coastguard Workerdocker rm --force armnn_temp > /dev/null
48*89c4ff92SAndroid Build Coastguard Worker
49*89c4ff92SAndroid Build Coastguard Workerecho -e "\n***** Deleted temporary Docker container armnn_temp *****"