77 lines
2.5 KiB
Bash
Executable File
77 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ -z "${RN_PROJECT_FOLDER_NAME}" ]]; then
|
|
echo "Please set the RN_PROJECT_FOLDER_NAME environment variable before running the script."
|
|
exit 1
|
|
fi
|
|
|
|
case $1 in
|
|
stop-metro)
|
|
docker exec -it ${RN_PROJECT_FOLDER_NAME} supervisorctl stop npm
|
|
;;
|
|
start-metro)
|
|
docker exec -it ${RN_PROJECT_FOLDER_NAME} supervisorctl start npm -- --reset-cache
|
|
docker logs -f ${RN_PROJECT_FOLDER_NAME}
|
|
;;
|
|
metro-logs)
|
|
docker exec -it ${RN_PROJECT_FOLDER_NAME} cat /var/log/app/npm.log
|
|
;;
|
|
connect-android)
|
|
docker exec -ti ${RN_PROJECT_FOLDER_NAME} adb connect host.docker.internal
|
|
;;
|
|
run-android)
|
|
docker exec -ti ${RN_PROJECT_FOLDER_NAME} adb connect host.docker.internal
|
|
docker exec -ti ${RN_PROJECT_FOLDER_NAME} npx react-native run-android
|
|
;;
|
|
reinstall-node-modules)
|
|
docker exec -it ${RN_PROJECT_FOLDER_NAME} /bin/bash -c "cd /home/${RN_PROJECT_FOLDER_NAME} && rm -rf node_modules && npm install"
|
|
;;
|
|
shell)
|
|
if [[ -z "${RN_PROJECT_FOLDER_NAME}" ]]; then
|
|
echo "Please set the RN_PROJECT_FOLDER_NAME environment variable before running the script."
|
|
exit 1
|
|
fi
|
|
docker exec -it ${RN_PROJECT_FOLDER_NAME} /bin/bash -c "cd /home/${RN_PROJECT_FOLDER_NAME} && exec /bin/bash"
|
|
;;
|
|
init-ssh)
|
|
if [[ -z "${SSH_KEY}" ]]; then
|
|
echo "Please set the SSH_KEY environment variable before running the script."
|
|
exit 1
|
|
fi
|
|
|
|
# generate ssh key
|
|
if [ ! -f "${SSH_KEY}" ]; then
|
|
ssh-keygen -t ed25519 -f "${SSH_KEY}" -N ""
|
|
echo "SSH key generated at ${SSH_KEY}"
|
|
else
|
|
echo "SSH key already exists at ${SSH_KEY}"
|
|
fi
|
|
|
|
# get docker container's IP
|
|
CONTAINER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${CONTAINER_NAME})
|
|
|
|
# check if the docker IP is already in the ssh config
|
|
if grep -q "${CONTAINER_IP}" ~/.ssh/config
|
|
then
|
|
echo "SSH config already contains the Docker IP."
|
|
else
|
|
echo "Adding Docker IP to SSH config..."
|
|
echo -e "Host ${CONTAINER_IP}\n\tPort 22\n\tUser root\n\tPubkeyAuthentication yes\n\tIdentityFile ${SSH_KEY}" >> ~/.ssh/config
|
|
echo "Docker IP added to SSH config."
|
|
fi
|
|
;;
|
|
clear-known-hosts)
|
|
if [ "$EUID" -ne 0 ]
|
|
then
|
|
echo "Please run this command as root or use sudo."
|
|
exit 1
|
|
fi
|
|
CONTAINER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${CONTAINER_NAME})
|
|
ssh-keygen -R ${CONTAINER_IP}
|
|
;;
|
|
*)
|
|
echo "Invalid command"
|
|
echo "Usage: $0 {logs|connect|run-android|stop}"
|
|
;;
|
|
esac
|