1
0
android-container/launch.sh
James Ketrenos 882875ee95 Working
Signed-off-by: James Ketrenos <james.p.ketrenos@intel.com>
2024-12-19 13:41:51 -08:00

62 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
fail() {
echo "$*" >&2
exit 1
}
declare project=$1
if [[ "${project}" == "" ]]; then
echo "usage: $0 PROJECT" >&2
exit 1
fi
declare full_path=$(realpath "projects/${project}")
declare project_type=$(cat "${full_path}/project_type")
if [[ "${project_type}" == "expo" ]]; then
echo "Launching EXPO container"
ports=(
"8081:8081"
)
volumes=(
./flutter:/usr/bin/flutter
./AndroidSDK:/opt/android-sdk:rw
./scripts:/scripts:rw
/tmp/.X11-unix:/tmp/.X11-unix
$(pwd)/AndroidUser:/root/.android
$(pwd)/GradleUser:/root/.gradle
)
fi
# Always add the project volume mount
volumes=("${volumes[@]}" "${full_path}:/projects/${project}")
if [ ${#ports[@]} -ne 0 ]; then
port_arg=""
for port in "${ports[@]}"; do
port_arg="${port_arg} -p ${port}"
done
fi
if [ ${#volumes[@]} -ne 0 ]; then
volume_arg=""
for volume in "${volumes[@]}"; do
volume_arg="${volume_arg} -v ${volume}"
done
fi
# --privileged is needed to be able to run the emulator
docker_cmd="docker compose run --rm
--name ${project}-seed
${port_arg}
${volume_arg}
android-dev-container --
run ${project} $(hostname)"
echo "${docker_cmd}"
if ! ${docker_cmd}; then
fail "Unable to start container for ${project}"
fi