#!/bin/bash
# keep-mcp diagnostic script

SEP="=========================================="

echo "$SEP"
echo "SYSTEM"
echo "$SEP"
uname -a
lsb_release -a 2>/dev/null
echo "Date: $(date)"

echo ""
echo "$SEP"
echo "USERS & PERMISSIONS"
echo "$SEP"
echo "Current user: $(whoami)"
echo "www-data home: $(getent passwd www-data | cut -d: -f6)"
echo "www-data shell: $(getent passwd www-data | cut -d: -f7)"

echo ""
echo "$SEP"
echo "PHP"
echo "$SEP"
php -v
php -r "echo 'proc_open: ' . (function_exists('proc_open') ? 'YES' : 'NO') . PHP_EOL;"
php -r "echo 'putenv: ' . (function_exists('putenv') ? 'YES' : 'NO') . PHP_EOL;"
php -r "echo 'sys_get_temp_dir: ' . sys_get_temp_dir() . PHP_EOL;"
php -r "echo 'PHP SAPI: ' . php_sapi_name() . PHP_EOL;"
echo "PHP-FPM user:"
ps aux | grep php-fpm | grep -v grep | head -5

echo ""
echo "$SEP"
echo "PYTHON & KEEP-MCP"
echo "$SEP"
echo "which python3: $(which python3 2>/dev/null || echo NOT FOUND)"
echo "python3 version: $(python3 --version 2>/dev/null || echo N/A)"
echo "which keep-mcp: $(which keep-mcp 2>/dev/null || echo NOT FOUND)"
ls -la /opt/keep-mcp-env/bin/keep-mcp 2>/dev/null || echo "/opt/keep-mcp-env/bin/keep-mcp not found"
echo "keep-mcp shebang: $(head -1 /opt/keep-mcp-env/bin/keep-mcp 2>/dev/null)"
echo "python symlink resolves to: $(readlink -f /opt/keep-mcp-env/bin/python3 2>/dev/null)"

echo ""
echo "$SEP"
echo "PERMISSIONS ON PYTHON PATH"
echo "$SEP"
TARGET=$(readlink -f /opt/keep-mcp-env/bin/python3 2>/dev/null)
if [ -n "$TARGET" ]; then
    # Check each directory in the path
    path="$TARGET"
    while [ "$path" != "/" ]; do
        ls -ld "$path" 2>/dev/null || echo "Cannot stat: $path"
        path=$(dirname "$path")
    done
fi

echo ""
echo "$SEP"
echo "PERMISSIONS: /opt/keep-mcp-env"
echo "$SEP"
ls -la /opt/keep-mcp-env/
ls -la /opt/keep-mcp-env/bin/ | head -20

echo ""
echo "$SEP"
echo "ROOT ENVIRONMENT"
echo "$SEP"
env | sort

echo ""
echo "$SEP"
echo "WWW-DATA ENVIRONMENT"
echo "$SEP"
sudo -u www-data env 2>/dev/null | sort || echo "Cannot get www-data env"

echo ""
echo "$SEP"
echo "KEEP-MCP TEST: as root, full env"
echo "$SEP"
printf '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}\n{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}\n' \
  | GOOGLE_EMAIL=majstors@gmail.com \
    GOOGLE_MASTER_TOKEN=aas_et/AKppINZVUKZSu7EhyGFuJ1oxCpoGMKdI9mGoMZ8mjlyNBJna-fNIQJAHJXT2DWK4IIClvVanDnbKpRid6lHR-CaFBi25bRXRlw-SMtnXM1OVX4izxFU10M8uXTrJ1oUE6oNmZ6Fox0SJJUydQT_peJ-Ri4C1HhdDQYYm7uNklqo-NtzFeVouhk2k_t1ZNsZcQQV95TOnczeDtKYP10PWX4U= \
    /opt/keep-mcp-env/bin/keep-mcp 2>/tmp/diag-stderr-root.log
echo "--- stderr ---"
cat /tmp/diag-stderr-root.log

echo ""
echo "$SEP"
echo "KEEP-MCP TEST: as www-data, inheriting current env"
echo "$SEP"
printf '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}\n{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}\n' \
  | sudo -u www-data \
    GOOGLE_EMAIL=majstors@gmail.com \
    GOOGLE_MASTER_TOKEN=aas_et/AKppINZVUKZSu7EhyGFuJ1oxCpoGMKdI9mGoMZ8mjlyNBJna-fNIQJAHJXT2DWK4IIClvVanDnbKpRid6lHR-CaFBi25bRXRlw-SMtnXM1OVX4izxFU10M8uXTrJ1oUE6oNmZ6Fox0SJJUydQT_peJ-Ri4C1HhdDQYYm7uNklqo-NtzFeVouhk2k_t1ZNsZcQQV95TOnczeDtKYP10PWX4U= \
    UNSAFE_MODE=true \
    /opt/keep-mcp-env/bin/keep-mcp 2>/tmp/diag-stderr-wwwdata.log
echo "--- stderr ---"
cat /tmp/diag-stderr-wwwdata.log

echo ""
echo "$SEP"
echo "NETWORK: can www-data reach Google?"
echo "$SEP"
sudo -u www-data curl -s --max-time 5 https://www.google.com -o /dev/null -w "HTTP %{http_code}\n" || echo "curl failed"

echo ""
echo "$SEP"
echo "APACHE CONFIG"
echo "$SEP"
cat /etc/apache2/sites-enabled/mcp* 2>/dev/null || echo "No mcp vhost found"
apache2ctl -M 2>/dev/null | grep -E "rewrite|php|proxy"

echo ""
echo "$SEP"
echo "WEBROOT FILES"
echo "$SEP"
ls -la /var/www/mcp.majstors.com/
ls -la /var/www/mcp.majstors.com/keep/

echo "$SEP"
echo "DONE"
echo "$SEP"
