{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/scripts\/sync-dev-prod.sh",
"old_string": "# Src synchronisieren (MVC Backend)\nrsync -av --delete \\\n --exclude='*.log' \\\n \"$DEV\/src\/\" \"$PROD\/src\/\"",
"new_string": "# 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\/\""
}
}
{
"tool_response": {
"filePath": "\/var\/www\/scripts\/sync-dev-prod.sh",
"oldString": "# Src synchronisieren (MVC Backend)\nrsync -av --delete \\\n --exclude='*.log' \\\n \"$DEV\/src\/\" \"$PROD\/src\/\"",
"newString": "# 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\/\"",
"originalFile": "#!\/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# 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# 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",
"structuredPatch": [
{
"oldStart": 39,
"oldLines": 6,
"newStart": 39,
"newLines": 16,
"lines": [
" fi",
" echo \"\"",
" ",
"+# Composer Dependencies synchronisieren",
"+rsync -av \"$DEV\/composer.json\" \"$PROD\/\"",
"+rsync -av \"$DEV\/composer.lock\" \"$PROD\/\"",
"+rsync -av --delete \"$DEV\/vendor\/\" \"$PROD\/vendor\/\"",
"+",
"+# .env synchronisieren (falls vorhanden)",
"+if [[ -f \"$DEV\/.env\" ]]; then",
"+ rsync -av \"$DEV\/.env\" \"$PROD\/\"",
"+fi",
"+",
" # Src synchronisieren (MVC Backend)",
" rsync -av --delete \\",
" --exclude='*.log' \\"
]
}
],
"userModified": false,
"replaceAll": false
}
}