#!/bin/bash ################################################################################ # Quick Deploy & Run Validation Scripts # Usage: ./deploy-and-run.sh ################################################################################ set -e if [ $# -lt 2 ]; then echo "Usage: $0 " echo "" echo "Examples:" echo " $0 192.168.1.100 interworx" echo " $0 plesk.example.com plesk" echo "" exit 1 fi SERVER="$1" PANEL="$2" # Validate panel type if [[ "$PANEL" != "interworx" ]] && [[ "$PANEL" != "plesk" ]]; then echo "Error: Panel must be 'interworx' or 'plesk'" exit 1 fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_NAME="validate-${PANEL}.sh" SCRIPT_PATH="${SCRIPT_DIR}/${SCRIPT_NAME}" RESULTS_FILE="${PANEL}-validation-results.txt" # Check if script exists if [ ! -f "$SCRIPT_PATH" ]; then echo "Error: Script not found: $SCRIPT_PATH" exit 1 fi echo "=======================================================================" echo "VALIDATION SCRIPT DEPLOYMENT" echo "=======================================================================" echo "Server: $SERVER" echo "Panel: $PANEL" echo "Script: $SCRIPT_NAME" echo "=======================================================================" echo "" # Step 1: Deploy script echo "[1/4] Deploying script to server..." if scp "$SCRIPT_PATH" "root@${SERVER}:/tmp/${SCRIPT_NAME}"; then echo "✓ Script deployed successfully" else echo "✗ Failed to deploy script" echo "Tip: Make sure SSH key authentication is set up, or use: ssh-copy-id root@${SERVER}" exit 1 fi echo "" # Step 2: Make executable and run echo "[2/4] Running validation script on server..." echo "This may take 1-2 minutes..." echo "" if ssh "root@${SERVER}" "chmod +x /tmp/${SCRIPT_NAME} && /tmp/${SCRIPT_NAME}"; then echo "" echo "✓ Validation completed successfully" else echo "" echo "⚠ Validation script encountered issues (check output above)" echo "Continuing to retrieve results file..." fi echo "" # Step 3: Retrieve results echo "[3/4] Retrieving results file..." if scp "root@${SERVER}:/tmp/${RESULTS_FILE}" "./${RESULTS_FILE}"; then echo "✓ Results file retrieved: ./${RESULTS_FILE}" else echo "✗ Failed to retrieve results file" exit 1 fi echo "" # Step 4: Show summary echo "[4/4] Generating summary..." echo "" echo "=======================================================================" echo "VALIDATION SUMMARY" echo "=======================================================================" # Count results PASS_COUNT=$(grep -c "^\[PASS\]" "$RESULTS_FILE" 2>/dev/null || echo "0") FAIL_COUNT=$(grep -c "^\[FAIL\]" "$RESULTS_FILE" 2>/dev/null || echo "0") WARN_COUNT=$(grep -c "^\[WARN\]" "$RESULTS_FILE" 2>/dev/null || echo "0") echo "PASS: $PASS_COUNT" echo "FAIL: $FAIL_COUNT" echo "WARN: $WARN_COUNT" echo "" if [ "$FAIL_COUNT" -eq 0 ]; then echo "✓ All critical tests passed!" else echo "⚠ Some tests failed - review results file" echo "" echo "Failed tests:" grep "^\[FAIL\]" "$RESULTS_FILE" 2>/dev/null || true fi echo "" echo "=======================================================================" echo "CRITICAL ANSWERS FOUND" echo "=======================================================================" # Extract critical answers grep -A10 "QUICK REFERENCE FOR DEVELOPERS" "$RESULTS_FILE" 2>/dev/null | head -15 || echo "See full results file" echo "" echo "=======================================================================" echo "NEXT STEPS" echo "=======================================================================" echo "1. Review full results: cat ${RESULTS_FILE}" echo "2. Check directory structures: grep 'DIRECTORY STRUCTURE' ${RESULTS_FILE}" echo "3. Share results with development team if needed" echo "" echo "Full results file: $(pwd)/${RESULTS_FILE}" echo "=======================================================================" exit 0