47 lines
2.1 KiB
Bash
Executable File
47 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
echo "🔧 Chess Tutor Docker Entrypoint"
|
|
|
|
# Create directories if they don't exist (with error handling)
|
|
mkdir -p public/openings 2>/dev/null || echo "⚠️ Cannot create public/openings (may already exist)"
|
|
mkdir -p public/wikipedia 2>/dev/null || echo "⚠️ Cannot create public/wikipedia (volume mounted)"
|
|
mkdir -p fixtures/tactics 2>/dev/null || echo "⚠️ Cannot create fixtures/tactics (volume mounted)"
|
|
mkdir -p downloads 2>/dev/null || echo "⚠️ Cannot create downloads (volume mounted)"
|
|
|
|
# Check if opening database exists
|
|
if [ ! -f "public/openings/ecoA.json" ]; then
|
|
echo "⚠️ Warning: Opening database not found in public/openings/"
|
|
echo " Please ensure opening database files (ecoA-E.json, moveIndex.json) are in your build context"
|
|
echo " The application will continue but opening training may not work properly"
|
|
else
|
|
echo "✅ Opening database found"
|
|
fi
|
|
|
|
# Check if Wikipedia cache needs to be populated
|
|
# Count JSON files (excluding index.json and .gitkeep)
|
|
WIKI_COUNT=$(find public/wikipedia -name "*.json" -not -name "index.json" 2>/dev/null | wc -l | tr -d ' ')
|
|
|
|
if [ "$WIKI_COUNT" -lt 10 ]; then
|
|
echo "📚 Wikipedia cache empty or incomplete (found $WIKI_COUNT files)"
|
|
echo " Fetching Wikipedia opening data..."
|
|
npm run cache:wikipedia || echo "⚠️ Warning: Wikipedia fetch failed, continuing..."
|
|
|
|
echo "🔗 Updating Wikipedia slugs in opening database..."
|
|
npm run update:wikipedia-slugs || echo "⚠️ Warning: Wikipedia slug update failed, continuing..."
|
|
|
|
echo "📊 Rebuilding opening move index..."
|
|
npm run build:opening-index || echo "⚠️ Warning: Move index rebuild failed, continuing..."
|
|
|
|
# Mark as initialized (with error handling for permissions)
|
|
touch public/wikipedia/.initialized 2>/dev/null || echo "⚠️ Cannot create marker file (permission issue, but cache is populated)"
|
|
echo "✅ Wikipedia data initialized"
|
|
else
|
|
echo "✅ Wikipedia cache already populated ($WIKI_COUNT files), skipping..."
|
|
fi
|
|
|
|
echo "🚀 Starting Chess Tutor application..."
|
|
|
|
# Execute the main command (node server.js)
|
|
exec "$@"
|