training-academy/scripts/setup.sh

176 lines
5.5 KiB
Bash

#!/bin/bash
# Colors for better output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
echo ""
echo -e "${PURPLE}🎮 Gooner Training Academy - Beta Testing Setup${NC}"
echo -e "${PURPLE}================================================${NC}"
echo -e "${CYAN}Version: 4.0 Beta | Build: November 2025${NC}"
echo ""
echo -e "${YELLOW}⚠️ ADULT CONTENT - 18+ ONLY ⚠️${NC}"
echo ""
# Detect OS
if [[ "$OSTYPE" == "darwin"* ]]; then
OS="macOS"
PACKAGE_MANAGER="brew"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
OS="Linux"
if command -v apt &> /dev/null; then
PACKAGE_MANAGER="apt"
elif command -v yum &> /dev/null; then
PACKAGE_MANAGER="yum"
elif command -v pacman &> /dev/null; then
PACKAGE_MANAGER="pacman"
else
PACKAGE_MANAGER="unknown"
fi
else
OS="Unknown"
PACKAGE_MANAGER="unknown"
fi
echo -e "${CYAN}📊 System Check:${NC}"
echo -e "${CYAN}---------------${NC}"
echo -e "Operating System: ${OS}"
echo -e "Package Manager: ${PACKAGE_MANAGER}"
# Check Node.js version
echo ""
echo "Checking Node.js..."
if ! command -v node &> /dev/null; then
echo -e "${RED}❌ Node.js is NOT installed${NC}"
echo ""
echo -e "${YELLOW}📥 Please install Node.js first:${NC}"
echo " https://nodejs.org/en/download/"
echo ""
echo "Or use your package manager:"
if [[ "$OS" == "macOS" ]]; then
echo " brew install node # macOS with Homebrew"
elif [[ "$OS" == "Linux" ]]; then
echo " sudo apt install nodejs npm # Ubuntu/Debian"
echo " sudo yum install nodejs npm # CentOS/RHEL/Fedora"
echo " sudo pacman -S nodejs npm # Arch Linux"
fi
echo ""
echo "After installation, run this setup script again."
exit 1
else
NODE_VERSION=$(node --version)
echo -e "${GREEN}✅ Node.js ${NODE_VERSION} detected${NC}"
# Check Node.js version (should be 16+)
NODE_MAJOR=$(echo $NODE_VERSION | cut -d'.' -f1 | sed 's/v//')
if [ "$NODE_MAJOR" -lt 16 ]; then
echo -e "${YELLOW}⚠️ Warning: Node.js version is older than recommended (16+)${NC}"
echo " Consider updating for best performance"
fi
fi
# Check npm
echo "Checking npm..."
if ! command -v npm &> /dev/null; then
echo -e "${RED}❌ npm is NOT installed${NC}"
echo " npm usually comes with Node.js"
echo " Please reinstall Node.js from nodejs.org"
exit 1
else
NPM_VERSION=$(npm --version)
echo -e "${GREEN}✅ npm v${NPM_VERSION} detected${NC}"
fi
# Check disk space (basic check)
echo "Checking disk space..."
AVAILABLE_SPACE=$(df -h . | awk 'NR==2 {print $4}')
echo -e "${GREEN}✅ Available disk space: ${AVAILABLE_SPACE}${NC}"
echo ""
echo -e "${CYAN}📦 Installing Dependencies:${NC}"
echo -e "${CYAN}--------------------------${NC}"
# Create backup of package-lock.json if it exists
if [ -f "package-lock.json" ]; then
echo "Creating backup of existing installation..."
cp package-lock.json package-lock.json.bak
fi
# Install dependencies
echo "Installing Electron and build tools..."
echo "This may take a few minutes..."
npm install --silent
if [ $? -eq 0 ]; then
echo ""
echo -e "${GREEN}✅ Installation Complete!${NC}"
echo -e "${GREEN}========================${NC}"
echo ""
echo -e "${PURPLE}🚀 Ready to Launch!${NC}"
echo ""
echo -e "${CYAN}🎯 Quick Start Options:${NC}"
echo " 1. Run 'npm start' to launch desktop app"
echo " 2. Open 'index.html' in browser (limited features)"
echo ""
echo -e "${CYAN}📚 Documentation:${NC}"
echo " - TESTER_GUIDE.md : Testing instructions"
echo " - INSTALLATION_GUIDE.md : Detailed setup help"
echo " - README.md : Full feature documentation"
echo ""
echo -e "${CYAN}🔧 Available Commands:${NC}"
echo " npm start : Launch desktop application"
echo " npm run dev : Launch with developer tools"
echo " npm run build : Create executable"
if [[ "$OS" == "macOS" ]]; then
echo " npm run build-mac : Build macOS .dmg installer"
elif [[ "$OS" == "Linux" ]]; then
echo " npm run build-linux : Build Linux AppImage"
fi
echo ""
echo -e "${CYAN}📞 Need Help?${NC}"
echo " - Check TESTER_GUIDE.md for common issues"
echo " - Open browser dev tools (F12) for console logs"
echo " - Report bugs with detailed reproduction steps"
echo ""
# Ask if user wants to auto-launch
read -p "🚀 Launch application now? (y/n): " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo ""
echo "Launching Gooner Training Academy..."
npm start &
else
echo ""
echo "👍 Setup complete! Launch when ready with: npm start"
fi
else
echo ""
echo -e "${RED}❌ Installation Failed!${NC}"
echo -e "${RED}=====================${NC}"
echo ""
echo -e "${YELLOW}🔍 Troubleshooting Steps:${NC}"
echo " 1. Check internet connection"
echo " 2. Clear npm cache: npm cache clean --force"
echo " 3. Delete node_modules folder and try again"
echo " 4. Check file permissions in current directory"
echo " 5. Try running with sudo (if on Linux)"
echo ""
echo -e "${YELLOW}📞 Still having issues?${NC}"
echo " - Check INSTALLATION_GUIDE.md"
echo " - Verify Node.js version is 16+"
echo " - Try manual setup: npm install"
echo " - Check system requirements"
echo ""
exit 1
fi
echo ""