{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/scripts\/sync-dev-prod.sh"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/scripts\/sync-dev-prod.sh",
"content": "#!\/bin\/bash\n# Dev → Prod Synchronisation\n# Verwendung: \/var\/www\/scripts\/sync-dev-prod.sh\n\nDEV=\"\/var\/www\/dev.campus.systemische-tools.de\"\nPROD=\"\/var\/www\/prod.campus.systemische-tools.de\"\n\necho \"=== Sync Dev → Prod: $(date) ===\"\n\n# Quality Audit (informativ, nicht blockierend)\necho \"=== Quality Audit ===\"\nQUALITY_SCAN=\"\/var\/www\/tools\/ki-protokoll\/claude-hook\/quality\/full_scan.py\"\nif [[ -x \"$QUALITY_SCAN\" ]]; then\n \"$QUALITY_SCAN\" --path \"$DEV\/src\" --blocks-only 2>\/dev\/null | tail -20 || true\n echo \"\"\nfi\n\n# Contract Validation (blockierend)\necho \"=== Contract Validation ===\"\nif ! \/var\/www\/scripts\/contract-check.sh \"$DEV\" 2>&1; then\n echo \"\"\n echo \"❌ SYNC ABGEBROCHEN: Contract Validation fehlgeschlagen\"\n echo \" Behebe die Contract-Violations und versuche es erneut.\"\n echo \" Tipp: \/var\/www\/scripts\/contract-check.sh $DEV\"\n exit 1\nfi\necho \"\"\n\n# PHP Quality Check (blockierend)\necho \"=== PHP Quality Check ===\"\nif ! \/var\/www\/scripts\/php-check.sh \"$DEV\" 2>&1; then\n echo \"\"\n echo \"❌ SYNC ABGEBROCHEN: PHP Quality Check fehlgeschlagen\"\n echo \" Behebe die Fehler und versuche es erneut.\"\n echo \" Tipp: \/var\/www\/scripts\/php-check.sh $DEV --fix\"\n exit 1\nfi\necho \"\"\n\n# PHPUnit Tests (blockierend)\necho \"=== PHPUnit Tests ===\"\nif ! \/var\/www\/scripts\/php-test.sh \"$DEV\" 2>&1; then\n echo \"\"\n echo \"❌ SYNC ABGEBROCHEN: Unit Tests fehlgeschlagen\"\n echo \" Behebe die fehlgeschlagenen Tests und versuche es erneut.\"\n exit 1\nfi\necho \"\"\n\n# Composer Dependencies synchronisieren\nrsync -av \"$DEV\/composer.json\" \"$PROD\/\"\nrsync -av \"$DEV\/composer.lock\" \"$PROD\/\"\nrsync -av --delete \"$DEV\/vendor\/\" \"$PROD\/vendor\/\"\n\n# .env synchronisieren (falls vorhanden)\nif [[ -f \"$DEV\/.env\" ]]; then\n rsync -av \"$DEV\/.env\" \"$PROD\/\"\nfi\n\n# Src synchronisieren (MVC Backend)\nrsync -av --delete \\\n --exclude='*.log' \\\n \"$DEV\/src\/\" \"$PROD\/src\/\"\n\n# App synchronisieren (MVP Frontend)\nrsync -av --delete \\\n --exclude='*.log' \\\n \"$DEV\/app\/\" \"$PROD\/app\/\"\n\n# Routes synchronisieren\nrsync -av \"$DEV\/routes\/\" \"$PROD\/routes\/\"\n\n# Public Assets (CSS, JS, Images)\nrsync -av \\\n --exclude='static-docs' \\\n \"$DEV\/public\/css\/\" \"$PROD\/public\/css\/\"\nrsync -av \"$DEV\/public\/js\/\" \"$PROD\/public\/js\/\"\nrsync -av \"$DEV\/public\/images\/\" \"$PROD\/public\/images\/\"\nrsync -av \"$DEV\/public\/.htaccess\" \"$PROD\/public\/.htaccess\"\nrsync -av \"$DEV\/public\/index.php\" \"$PROD\/public\/index.php\"\n\n# Config synchronisieren (außer environment-spezifisches)\nrsync -av \\\n --exclude='config.php' \\\n \"$DEV\/config\/\" \"$PROD\/config\/\"\n\n# Berechtigungen setzen\n\/var\/www\/scripts\/fix-permissions.sh\n\necho \"=== Sync abgeschlossen ===\"\n",
"numLines": 91,
"startLine": 1,
"totalLines": 91
}
}
}