From 97d05148d4f28b3ace0080b7b8b182ef04d7bdeb Mon Sep 17 00:00:00 2001 From: trueheads Date: Fri, 12 Dec 2025 18:26:51 -0600 Subject: [PATCH] adding shell script for ease of launching project, until cody gets off his butt and switches the npm run stuff ;) --- init.sh | 109 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 93 insertions(+), 16 deletions(-) diff --git a/init.sh b/init.sh index 5db4aab7..5f4bba43 100755 --- a/init.sh +++ b/init.sh @@ -1,31 +1,108 @@ #!/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 -APP_DIR="$(dirname "$0")/app" +echo "╔═══════════════════════════════════════════════════════╗" +echo "║ Automaker Development Environment ║" +echo "╚═══════════════════════════════════════════════════════╝" +echo "" -if [ ! -d "$APP_DIR" ]; then - echo "Error: app directory not found" +# Colors for output +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 fi -# Install dependencies if node_modules doesn't exist -if [ ! -d "$APP_DIR/node_modules" ]; then - echo "Installing dependencies..." - npm install --prefix "$APP_DIR" +# Install dependencies if needed +if [ ! -d "node_modules" ]; then + echo -e "${BLUE}Installing dependencies...${NC}" + npm install fi # Install Playwright browsers if needed -echo "Checking Playwright browsers..." +echo -e "${YELLOW}Checking Playwright browsers...${NC}" npx playwright install chromium 2>/dev/null || true -# Kill any process on port 3000 -echo "Checking port 3000..." +# Kill any existing processes on required ports +echo -e "${YELLOW}Checking for processes on ports 3007 and 3008...${NC}" lsof -ti:3007 | xargs kill -9 2>/dev/null || true +lsof -ti:3008 | xargs kill -9 2>/dev/null || true -# Start the dev server -echo "Starting Next.js development server..." -npm run dev --prefix "$APP_DIR" +# Start the backend server +echo -e "${BLUE}Starting backend server on port 3008...${NC}" +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