xref: /aosp_15_r20/external/grpc-grpc-java/buildscripts/run_in_docker.sh (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1*e07d83d3SAndroid Build Coastguard Worker#!/bin/bash
2*e07d83d3SAndroid Build Coastguard Workerset -eu -o pipefail
3*e07d83d3SAndroid Build Coastguard Worker
4*e07d83d3SAndroid Build Coastguard Workerquote() {
5*e07d83d3SAndroid Build Coastguard Worker  local arg
6*e07d83d3SAndroid Build Coastguard Worker  for arg in "$@"; do
7*e07d83d3SAndroid Build Coastguard Worker    printf "'"
8*e07d83d3SAndroid Build Coastguard Worker    printf "%s" "$arg" | sed -e "s/'/'\\\\''/g"
9*e07d83d3SAndroid Build Coastguard Worker    printf "' "
10*e07d83d3SAndroid Build Coastguard Worker  done
11*e07d83d3SAndroid Build Coastguard Worker}
12*e07d83d3SAndroid Build Coastguard Worker
13*e07d83d3SAndroid Build Coastguard Workerreadonly docker_image=$1; shift
14*e07d83d3SAndroid Build Coastguard Worker
15*e07d83d3SAndroid Build Coastguard Workerreadonly grpc_java_dir="$(dirname "$(readlink -f "$0")")/.."
16*e07d83d3SAndroid Build Coastguard Workerif [[ -t 0 ]]; then
17*e07d83d3SAndroid Build Coastguard Worker  DOCKER_ARGS="-it"
18*e07d83d3SAndroid Build Coastguard Workerelse
19*e07d83d3SAndroid Build Coastguard Worker  # The input device on kokoro is not a TTY, so -it does not work.
20*e07d83d3SAndroid Build Coastguard Worker  DOCKER_ARGS=
21*e07d83d3SAndroid Build Coastguard Workerfi
22*e07d83d3SAndroid Build Coastguard Worker# Use a trap function to fix file permissions upon exit, without affecting
23*e07d83d3SAndroid Build Coastguard Worker# the original exit code. $DOCKER_ARGS can not be quoted, otherwise it becomes a '' which confuses
24*e07d83d3SAndroid Build Coastguard Worker# docker.
25*e07d83d3SAndroid Build Coastguard Workerexec docker run $DOCKER_ARGS --rm=true -v "${grpc_java_dir}":/grpc-java -w /grpc-java \
26*e07d83d3SAndroid Build Coastguard Worker  $docker_image \
27*e07d83d3SAndroid Build Coastguard Worker  bash -c "function fixFiles() { chown -R $(id -u):$(id -g) /grpc-java; }; trap fixFiles EXIT; $(quote "$@")"
28