108 lines
No EOL
5.5 KiB
Bash
Executable file
108 lines
No EOL
5.5 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# HVAC Community Events Plugin Deployment Script
|
|
# This script deploys the updated plugin with Zoho CRM integration fixes
|
|
#
|
|
|
|
# Exit on error
|
|
set -e
|
|
|
|
# Load environment variables
|
|
if [ -f ".env" ]; then
|
|
source .env
|
|
else
|
|
echo "Error: .env file not found"
|
|
exit 1
|
|
fi
|
|
|
|
# Define variables
|
|
PLUGIN_NAME="hvac-community-events"
|
|
PLUGIN_ZIP="plugin-backups/hvac-community-events-updated.zip"
|
|
PLUGIN_DIR="${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/wp-content/plugins/${PLUGIN_NAME}"
|
|
BACKUP_DIR="${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/wp-content/plugins/${PLUGIN_NAME}.bak.$(date +%Y%m%d%H%M%S)"
|
|
TEMP_DIR="${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/wp-content/upgrade/temp-${PLUGIN_NAME}"
|
|
|
|
# Check if required variables are set
|
|
if [ -z "${UPSKILL_STAGING_SSH_USER}" ] || [ -z "${UPSKILL_STAGING_IP}" ]; then
|
|
echo "Error: Required environment variables not set. Please check your .env file."
|
|
exit 1
|
|
fi
|
|
|
|
# Display deployment info
|
|
echo "=============================================="
|
|
echo "HVAC Community Events Plugin Deployment"
|
|
echo "=============================================="
|
|
echo "Deploying to: ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP}"
|
|
echo "Plugin path: ${PLUGIN_DIR}"
|
|
echo "Backup path: ${BACKUP_DIR}"
|
|
echo "=============================================="
|
|
echo
|
|
|
|
# Check if plugin zip exists
|
|
if [ ! -f "${PLUGIN_ZIP}" ]; then
|
|
echo "Error: Plugin ZIP file not found at ${PLUGIN_ZIP}"
|
|
exit 1
|
|
fi
|
|
|
|
# Define SSH command with password if available
|
|
if [ -n "${UPSKILL_STAGING_PASS}" ]; then
|
|
SSH_CMD="sshpass -p \"${UPSKILL_STAGING_PASS}\" ssh -o StrictHostKeyChecking=no"
|
|
else
|
|
SSH_CMD="ssh -o StrictHostKeyChecking=no"
|
|
fi
|
|
|
|
# Define SCP command with password if available
|
|
if [ -n "${UPSKILL_STAGING_PASS}" ]; then
|
|
SCP_CMD="sshpass -p \"${UPSKILL_STAGING_PASS}\" scp -o StrictHostKeyChecking=no"
|
|
else
|
|
SCP_CMD="scp -o StrictHostKeyChecking=no"
|
|
fi
|
|
|
|
# Create deployment steps
|
|
echo "Step 1: Checking server connection..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "echo Server connection successful."
|
|
|
|
echo "Step 2: Deactivating existing plugin..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "cd ${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html} && wp plugin deactivate ${PLUGIN_NAME} --skip-plugins --skip-themes || echo 'Plugin not active or not found'"
|
|
|
|
echo "Step 3: Creating backup of existing plugin..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "if [ -d '${PLUGIN_DIR}' ]; then mv '${PLUGIN_DIR}' '${BACKUP_DIR}'; echo 'Backup created at ${BACKUP_DIR}'; else echo 'No existing plugin to backup'; fi"
|
|
|
|
echo "Step 4: Creating temporary directory..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "mkdir -p '${TEMP_DIR}'"
|
|
# Verify the directory was created
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "ls -la '$(dirname ${TEMP_DIR})' && echo 'Temp directory created successfully'"
|
|
|
|
echo "Step 5: Uploading plugin package..."
|
|
# First upload to home directory, then move to temp dir
|
|
${SCP_CMD} "${PLUGIN_ZIP}" ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP}:~/plugin.zip
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "mv ~/plugin.zip '${TEMP_DIR}/'"
|
|
|
|
echo "Step 6: Extracting plugin package..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "cd '${TEMP_DIR}' && unzip -q plugin.zip && mv ${PLUGIN_NAME}-updated '${PLUGIN_DIR}'"
|
|
|
|
echo "Step 7: Fixing file permissions..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "chmod -R 755 '${PLUGIN_DIR}'"
|
|
|
|
echo "Step 8: Cleaning up temporary files..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "rm -rf '${TEMP_DIR}'"
|
|
|
|
echo "Step 9: Creating .env file with Zoho credentials..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "echo 'ZOHO_CLIENT_ID=${ZOHO_CLIENT_ID}' > '${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/.env' && echo 'ZOHO_CLIENT_SECRET=${ZOHO_CLIENT_SECRET}' >> '${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/.env' && echo 'UPSKILL_STAGING_URL=https://upskill-staging.measurequick.com/' >> '${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/.env' && chmod 640 '${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/.env'"
|
|
|
|
echo "Step 10: Activating plugin..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "cd ${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html} && wp plugin activate ${PLUGIN_NAME} --skip-plugins --skip-themes"
|
|
|
|
echo "Step 11: Flushing rewrite rules..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "cd ${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html} && wp rewrite flush --skip-plugins --skip-themes"
|
|
|
|
echo "Step 12: Verifying installation..."
|
|
${SSH_CMD} ${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP} "cd ${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html} && wp plugin is-active ${PLUGIN_NAME} --skip-plugins --skip-themes && echo 'Plugin successfully activated' || echo 'WARNING: Plugin activation failed'"
|
|
|
|
echo
|
|
echo "=============================================="
|
|
echo "Deployment completed!"
|
|
echo "=============================================="
|
|
echo "Don't forget to verify the Zoho CRM integration at:"
|
|
echo "https://upskill-staging.measurequick.com/wp-admin/admin.php?page=hvac-zoho-sync"
|
|
echo "==============================================" |