mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
128 lines
3.6 KiB
Bash
128 lines
3.6 KiB
Bash
#!/bin/bash
|
|
|
|
# AzerothCore Module Rebuild Script
|
|
# Automates the process of rebuilding AzerothCore with enabled modules
|
|
|
|
set -e
|
|
|
|
echo "🔧 AzerothCore Module Rebuild Script"
|
|
echo "==================================="
|
|
echo ""
|
|
|
|
# Check if source repository exists
|
|
SOURCE_COMPOSE="/tmp/acore-dev-test/docker-compose.yml"
|
|
if [ ! -f "$SOURCE_COMPOSE" ]; then
|
|
echo "❌ Error: Source-based Docker Compose file not found at $SOURCE_COMPOSE"
|
|
echo "Please ensure AzerothCore source repository is available for compilation."
|
|
exit 1
|
|
fi
|
|
|
|
# Check current module configuration
|
|
echo "📋 Checking current module configuration..."
|
|
|
|
MODULES_ENABLED=0
|
|
ENABLED_MODULES=""
|
|
|
|
# Read environment file to check enabled modules
|
|
if [ -f "docker-compose-azerothcore-services.env" ]; then
|
|
while IFS= read -r line; do
|
|
if echo "$line" | grep -q "^MODULE_.*=1$"; then
|
|
MODULE_NAME=$(echo "$line" | cut -d'=' -f1)
|
|
MODULES_ENABLED=$((MODULES_ENABLED + 1))
|
|
ENABLED_MODULES="$ENABLED_MODULES $MODULE_NAME"
|
|
fi
|
|
done < docker-compose-azerothcore-services.env
|
|
else
|
|
echo "⚠️ Warning: Environment file not found, checking default configuration..."
|
|
fi
|
|
|
|
echo "🔍 Found $MODULES_ENABLED enabled modules"
|
|
|
|
if [ $MODULES_ENABLED -eq 0 ]; then
|
|
echo "✅ No modules enabled - rebuild not required"
|
|
echo "You can use pre-built containers for better performance."
|
|
exit 0
|
|
fi
|
|
|
|
echo "📦 Enabled modules:$ENABLED_MODULES"
|
|
echo ""
|
|
|
|
# Confirm rebuild
|
|
read -p "🤔 Proceed with rebuild? This will take 15-45 minutes. (y/N): " -n 1 -r
|
|
echo ""
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "❌ Rebuild cancelled"
|
|
exit 0
|
|
fi
|
|
|
|
echo ""
|
|
echo "🛑 Stopping current services..."
|
|
docker compose -f docker-compose-azerothcore-services.yml down || echo "⚠️ Services may not be running"
|
|
|
|
echo ""
|
|
echo "🔧 Starting source-based compilation..."
|
|
echo "⏱️ This will take 15-45 minutes depending on your system..."
|
|
echo ""
|
|
|
|
# Build with source
|
|
cd /tmp/acore-dev-test
|
|
echo "📁 Switched to source directory: $(pwd)"
|
|
|
|
# Copy modules to source build
|
|
echo "📋 Copying modules to source build..."
|
|
if [ -d "/home/upb/src/acore-compose2/storage/azerothcore/modules" ]; then
|
|
# Ensure modules directory exists in source
|
|
mkdir -p modules
|
|
|
|
# Copy enabled modules only
|
|
echo "🔄 Syncing enabled modules..."
|
|
for module_dir in /home/upb/src/acore-compose2/storage/azerothcore/modules/*/; do
|
|
if [ -d "$module_dir" ]; then
|
|
module_name=$(basename "$module_dir")
|
|
echo " Copying $module_name..."
|
|
cp -r "$module_dir" modules/
|
|
fi
|
|
done
|
|
else
|
|
echo "⚠️ Warning: No modules directory found"
|
|
fi
|
|
|
|
# Start build process
|
|
echo ""
|
|
echo "🚀 Building AzerothCore with modules..."
|
|
docker compose build --no-cache
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "✅ Build completed successfully!"
|
|
echo ""
|
|
|
|
# Start services
|
|
echo "🟢 Starting services with compiled modules..."
|
|
docker compose up -d
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "🎉 SUCCESS! AzerothCore is now running with compiled modules."
|
|
echo ""
|
|
echo "📊 Service status:"
|
|
docker compose ps
|
|
echo ""
|
|
echo "📝 To monitor logs:"
|
|
echo " docker compose logs -f"
|
|
echo ""
|
|
echo "🌐 Server should be available on configured ports once fully started."
|
|
else
|
|
echo "❌ Failed to start services"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "❌ Build failed"
|
|
echo ""
|
|
echo "🔍 Check build logs for errors:"
|
|
echo " docker compose logs"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ Rebuild process complete!" |