45 lines
1.4 KiB
Bash
Executable File
45 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
if ! [ -x "$(command -v firebase)" ]; then
|
|
echo "❌ Firebase-tools CLI is missing. Run 'npm i -g firebase-tools' or the equivalent"
|
|
exit 1
|
|
fi
|
|
|
|
EMU_START_COMMAND="firebase emulators:start --only auth,database,firestore,functions,storage --project react-native-firebase-testing"
|
|
#EMU_START_COMMAND="sleep 120"
|
|
MAX_RETRIES=3
|
|
MAX_CHECKATTEMPTS=60
|
|
CHECKATTEMPTS_WAIT=1
|
|
|
|
# Make sure functions are ready to go
|
|
pushd "$(dirname "$0")/functions" && yarn && yarn build && popd
|
|
|
|
|
|
RETRIES=1
|
|
while [ $RETRIES -le $MAX_RETRIES ]; do
|
|
|
|
if [ "$1" == "--no-daemon" ]; then
|
|
echo "Starting Firebase Emulator Suite in foreground."
|
|
$EMU_START_COMMAND
|
|
exit 0
|
|
else
|
|
echo "Starting Firebase Emulator Suite in background."
|
|
$EMU_START_COMMAND &
|
|
CHECKATTEMPTS=1
|
|
while [ $CHECKATTEMPTS -le $MAX_CHECKATTEMPTS ]; do
|
|
sleep $CHECKATTEMPTS_WAIT
|
|
if curl --output /dev/null --silent --fail http://localhost:8080; then
|
|
echo "Firebase Emulator Suite is online!"
|
|
exit 0;
|
|
fi
|
|
echo "Waiting for Firebase Emulator Suite to come online, check $CHECKATTEMPTS of $MAX_CHECKATTEMPTS..."
|
|
((CHECKATTEMPTS = CHECKATTEMPTS + 1))
|
|
done
|
|
fi
|
|
|
|
echo "Firebase Emulator Suite did not come online in $MAX_CHECKATTEMPTS checks. Try $RETRIES of $MAX_RETRIES."
|
|
((RETRIES = RETRIES + 1))
|
|
|
|
done
|
|
echo "Firebase Emulator Suite did not come online after $MAX_RETRIES attempts."
|
|
exit 1
|