Last active
July 13, 2024 18:47
-
-
Save cryptoskillz/aea88e733b8a346dd1abc860f4f38a1b to your computer and use it in GitHub Desktop.
This is a bash script to allow you to run multiple workers locally and keep things in sync
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#this is a script for starting, stopping, syncing, and deploying the workers | |
kill_rogue_processes() { | |
echo "Killing database worker" | |
kill -9 $(lsof -t -i:8787) 2>/dev/null | |
echo "Killing jwt worker" | |
kill -9 $(lsof -t -i:8788) 2>/dev/null | |
echo "Killing email worker" | |
kill -9 $(lsof -t -i:8789) 2>/dev/null | |
} | |
deploy_workers() { | |
echo "Deploying workers" | |
cd workers/database | |
echo "Publishing database worker" | |
sudo npx wrangler deploy --env production | |
cd .. | |
cd jwt | |
echo "Publishing jwt worker" | |
sudo npx wrangler deploy --env production | |
cd .. | |
cd email | |
echo "Publishing email worker" | |
sudo npx wrangler deploy --env production | |
cd ../.. | |
} | |
sync_databases() { | |
#todo | |
echo "Syncing databases" | |
cp -R workers/jwt/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/ workers/database/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/ | |
} | |
# Start wrangler dev | |
start_wrangler() { | |
local dir=$1 | |
local port=$2 | |
echo "Starting wrangler dev in $dir on port $port" | |
cd "$dir" || exit 1 | |
npx wrangler dev --env local --port "$port" & | |
cd - > /dev/null || exit 1 | |
} | |
# Main script logic based on command-line argument | |
if [ "$1" == "kill" ]; then | |
kill_rogue_processes | |
elif [ "$1" == "sync" ]; then | |
sync_databases | |
elif [ "$1" == "start" ]; then | |
# Start workers | |
start_wrangler "workers/jwt" 8787 | |
start_wrangler "workers/database" 8788 # Example: different port for database | |
start_wrangler "workers/email" 8789 # Example: different port for email | |
elif [ "$1" == "deploy" ]; then | |
deploy_workers | |
else | |
echo "Usage: $0 [kill|sync|start|deploy]" | |
exit 1 | |
fi | |
echo "done" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment