62 lines
1.2 KiB
Bash
Executable File
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
|