adding shell script for ease of launching project, until cody gets off his butt and switches the npm run stuff ;)

This commit is contained in:
trueheads
2025-12-12 18:26:51 -06:00
parent 437063630c
commit 97d05148d4

109
init.sh
View File

@@ -1,31 +1,108 @@
#!/bin/bash #!/bin/bash
# Automaker - Development Environment Setup Script # Automaker - Development Environment Setup and Launch Script
echo "=== Automaker Development Environment Setup ===" set -e # Exit on error
# Navigate to app directory echo "╔═══════════════════════════════════════════════════════╗"
APP_DIR="$(dirname "$0")/app" echo "║ Automaker Development Environment ║"
echo "╚═══════════════════════════════════════════════════════╝"
echo ""
if [ ! -d "$APP_DIR" ]; then # Colors for output
echo "Error: app directory not found" GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Check if node is installed
if ! command -v node &> /dev/null; then
echo -e "${RED}Error: Node.js is not installed${NC}"
echo "Please install Node.js from https://nodejs.org/"
exit 1 exit 1
fi fi
# Install dependencies if node_modules doesn't exist # Install dependencies if needed
if [ ! -d "$APP_DIR/node_modules" ]; then if [ ! -d "node_modules" ]; then
echo "Installing dependencies..." echo -e "${BLUE}Installing dependencies...${NC}"
npm install --prefix "$APP_DIR" npm install
fi fi
# Install Playwright browsers if needed # Install Playwright browsers if needed
echo "Checking Playwright browsers..." echo -e "${YELLOW}Checking Playwright browsers...${NC}"
npx playwright install chromium 2>/dev/null || true npx playwright install chromium 2>/dev/null || true
# Kill any process on port 3000 # Kill any existing processes on required ports
echo "Checking port 3000..." echo -e "${YELLOW}Checking for processes on ports 3007 and 3008...${NC}"
lsof -ti:3007 | xargs kill -9 2>/dev/null || true lsof -ti:3007 | xargs kill -9 2>/dev/null || true
lsof -ti:3008 | xargs kill -9 2>/dev/null || true
# Start the dev server # Start the backend server
echo "Starting Next.js development server..." echo -e "${BLUE}Starting backend server on port 3008...${NC}"
npm run dev --prefix "$APP_DIR" npm run dev:server > logs/server.log 2>&1 &
SERVER_PID=$!
echo -e "${YELLOW}Waiting for server to be ready...${NC}"
# Wait for server health check
MAX_RETRIES=30
RETRY_COUNT=0
SERVER_READY=false
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
if curl -s http://localhost:3008/api/health > /dev/null 2>&1; then
SERVER_READY=true
break
fi
sleep 1
RETRY_COUNT=$((RETRY_COUNT + 1))
echo -n "."
done
echo ""
if [ "$SERVER_READY" = false ]; then
echo -e "${RED}Error: Server failed to start${NC}"
echo "Check logs/server.log for details"
kill $SERVER_PID 2>/dev/null || true
exit 1
fi
echo -e "${GREEN}✓ Server is ready!${NC}"
echo ""
# Prompt user for application mode
echo "═══════════════════════════════════════════════════════"
echo " Select Application Mode:"
echo "═══════════════════════════════════════════════════════"
echo " 1) Web Application (Browser)"
echo " 2) Desktop Application (Electron)"
echo "═══════════════════════════════════════════════════════"
echo ""
while true; do
read -p "Enter your choice (1 or 2): " choice
case $choice in
1)
echo ""
echo -e "${BLUE}Launching Web Application...${NC}"
echo "The application will be available at: ${GREEN}http://localhost:3007${NC}"
echo ""
npm run dev:web
break
;;
2)
echo ""
echo -e "${BLUE}Launching Desktop Application...${NC}"
npm run dev:electron
break
;;
*)
echo -e "${RED}Invalid choice. Please enter 1 or 2.${NC}"
;;
esac
done
# Cleanup on exit
trap "echo 'Cleaning up...'; kill $SERVER_PID 2>/dev/null || true; exit" INT TERM EXIT