Files
Linux-Server-Management-Too…/testing/deploy-and-run.sh
T

144 lines
4.3 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# Quick Deploy & Run Validation Scripts
# Usage: ./deploy-and-run.sh <server-ip> <interworx|plesk>
################################################################################
set -e
if [ $# -lt 2 ]; then
echo "Usage: $0 <server-ip> <interworx|plesk>"
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")
# Ensure counts are integers
PASS_COUNT=$(echo "$PASS_COUNT" | head -1 | tr -d '\n')
FAIL_COUNT=$(echo "$FAIL_COUNT" | head -1 | tr -d '\n')
WARN_COUNT=$(echo "$WARN_COUNT" | head -1 | tr -d '\n')
# Default to 0 if empty
PASS_COUNT=${PASS_COUNT:-0}
FAIL_COUNT=${FAIL_COUNT:-0}
WARN_COUNT=${WARN_COUNT:-0}
echo "PASS: $PASS_COUNT"
echo "FAIL: $FAIL_COUNT"
echo "WARN: $WARN_COUNT"
echo ""
if [ "$FAIL_COUNT" -eq 0 ] 2>/dev/null; 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