Add MT5 safety tools to prevent MetaEditor freezes

- check-syntax.sh: Pre-compilation syntax checker for MT4→MT5 issues
- metaeditor-watchdog.sh: Auto-kills stuck MetaEditor processes
- safe-compile.sh: Wrapper with 2-minute timeout for compilations

These tools help prevent the container freeze that occurred when
trying to compile OrdersEA with 100 MT4 syntax errors.
This commit is contained in:
2026-03-24 13:36:55 -04:00
parent c415cd9919
commit 5c6c5e4741
3 changed files with 91 additions and 0 deletions

31
scripts/safe-compile.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/bash
# Safe compilation wrapper
echo "=== Safe Compile Mode ==="
echo ""
echo "1. Checking file syntax first..."
echo ""
echo "2. Killing any existing MetaEditor processes..."
docker exec mt5 pkill -9 metaeditor64 2>/dev/null
sleep 2
echo ""
echo "3. Starting MetaEditor in background with timeout..."
# MetaEditor has 2 minute timeout
timeout 120 docker exec mt5 wine "/config/.wine/drive_c/Program Files/MetaTrader 5/metaeditor64.exe" "$@" 2>&1 &
PID=$!
echo ""
echo "4. Monitoring for 2 minutes max..."
wait $PID
EXITCODE=$?
if [ $EXITCODE -eq 124 ]; then
echo "⚠️ Compilation timed out - MetaEditor was killed"
docker exec mt5 pkill -9 metaeditor64 2>/dev/null
elif [ $EXITCODE -eq 0 ]; then
echo "✅ Compilation completed"
else
echo "⚠️ Compilation exited with code $EXITCODE"
fi