126 lines
No EOL
4.7 KiB
Bash
Executable file
126 lines
No EOL
4.7 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Deploy HVAC Community Events plugin via WP-CLI
|
|
# This script uses SSH to execute WP-CLI commands on the remote server
|
|
# It handles plugin installation, activation, and verification
|
|
|
|
# Get absolute path to this script's directory
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Navigate to wordpress-dev directory
|
|
cd "$(dirname "$SCRIPT_DIR")" || exit 1
|
|
|
|
# Load environment variables
|
|
ENV_FILE=".env"
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "Error: .env file not found at: $ENV_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
source "$ENV_FILE"
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
# Function to check if a command was successful
|
|
check_status() {
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ $1${NC}"
|
|
return 0
|
|
else
|
|
echo -e "${RED}✗ $1${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Function to run WP-CLI commands remotely
|
|
remote_wp_cli() {
|
|
COMMAND="$1"
|
|
sshpass -p "${UPSKILL_STAGING_PASS}" ssh -o StrictHostKeyChecking=no "${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP}" "cd ${UPSKILL_STAGING_PATH} && wp $COMMAND --allow-root"
|
|
}
|
|
|
|
echo "=== Deploying HVAC Community Events Plugin via CLI ==="
|
|
echo "Remote host: ${UPSKILL_STAGING_IP} (upskill-staging.measurequick.com)"
|
|
echo "Remote user: ${UPSKILL_STAGING_SSH_USER}"
|
|
echo "WordPress path: ${UPSKILL_STAGING_PATH}"
|
|
echo "Plugin package: plugin-backups/hvac-community-events.zip"
|
|
echo "======================================================="
|
|
|
|
# Step 1: Check if plugin exists and deactivate it if it does
|
|
echo -e "\n${YELLOW}Checking if plugin is already installed...${NC}"
|
|
PLUGIN_STATUS=$(remote_wp_cli "plugin get hvac-community-events --field=status" 2>/dev/null)
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${YELLOW}Plugin is already installed with status: $PLUGIN_STATUS${NC}"
|
|
|
|
# Deactivate plugin if active
|
|
if [ "$PLUGIN_STATUS" = "active" ]; then
|
|
echo -e "${YELLOW}Deactivating existing plugin...${NC}"
|
|
remote_wp_cli "plugin deactivate hvac-community-events"
|
|
check_status "Plugin deactivated"
|
|
fi
|
|
|
|
# Make backup of existing plugin
|
|
echo -e "${YELLOW}Creating backup of existing plugin...${NC}"
|
|
BACKUP_DATE=$(date +%Y%m%d%H%M%S)
|
|
remote_wp_cli "plugin get hvac-community-events --field=path" | xargs -I {} sshpass -p "${UPSKILL_STAGING_PASS}" ssh -o StrictHostKeyChecking=no "${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP}" "cp -r {} {}.bak.$BACKUP_DATE"
|
|
check_status "Plugin backup created"
|
|
|
|
# Delete existing plugin
|
|
echo -e "${YELLOW}Removing existing plugin...${NC}"
|
|
remote_wp_cli "plugin delete hvac-community-events"
|
|
check_status "Existing plugin deleted"
|
|
else
|
|
echo -e "${YELLOW}Plugin not currently installed.${NC}"
|
|
fi
|
|
|
|
# Step 2: Upload plugin zip file
|
|
echo -e "\n${YELLOW}Uploading plugin package...${NC}"
|
|
sshpass -p "${UPSKILL_STAGING_PASS}" scp "plugin-backups/hvac-community-events.zip" "${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP}:${UPSKILL_STAGING_PATH}"
|
|
check_status "Plugin package uploaded"
|
|
|
|
# Step 3: Install plugin
|
|
echo -e "\n${YELLOW}Installing plugin...${NC}"
|
|
remote_wp_cli "plugin install ${UPSKILL_STAGING_PATH}/hvac-community-events.zip --force"
|
|
check_status "Plugin installed"
|
|
|
|
# Step 4: Activate plugin
|
|
echo -e "\n${YELLOW}Activating plugin...${NC}"
|
|
remote_wp_cli "plugin activate hvac-community-events"
|
|
check_status "Plugin activated"
|
|
|
|
# Step 5: Clean up
|
|
echo -e "\n${YELLOW}Cleaning up...${NC}"
|
|
sshpass -p "${UPSKILL_STAGING_PASS}" ssh -o StrictHostKeyChecking=no "${UPSKILL_STAGING_SSH_USER}@${UPSKILL_STAGING_IP}" "rm -f ${UPSKILL_STAGING_PATH}/hvac-community-events.zip"
|
|
check_status "Temporary files removed"
|
|
|
|
# Step 6: Verify installation
|
|
echo -e "\n${YELLOW}Verifying installation...${NC}"
|
|
PLUGIN_VERSION=$(remote_wp_cli "plugin get hvac-community-events --field=version")
|
|
check_status "Plugin installed with version: $PLUGIN_VERSION"
|
|
|
|
# Check if plugin roles are created
|
|
echo -e "\n${YELLOW}Checking plugin roles...${NC}"
|
|
ROLES=$(remote_wp_cli "role list --field=role")
|
|
if [[ $ROLES == *"hvac_trainer"* ]]; then
|
|
echo -e "${GREEN}✓ HVAC Trainer role exists${NC}"
|
|
else
|
|
echo -e "${RED}✗ HVAC Trainer role not found${NC}"
|
|
fi
|
|
|
|
# Step 7: Flush rewrite rules
|
|
echo -e "\n${YELLOW}Flushing rewrite rules...${NC}"
|
|
remote_wp_cli "rewrite flush --hard"
|
|
check_status "Rewrite rules flushed"
|
|
|
|
echo -e "\n${GREEN}Plugin deployment completed!${NC}"
|
|
echo "Plugin: hvac-community-events"
|
|
echo "Version: $PLUGIN_VERSION"
|
|
echo "Status: $(remote_wp_cli "plugin get hvac-community-events --field=status")"
|
|
echo -e "\nNext steps:"
|
|
echo "1. Set up test users with './bin/setup-staging-test-users.sh'"
|
|
echo "2. Create test data with './bin/create-comprehensive-test-data.sh'"
|
|
echo "3. Verify Zoho CRM integration with the verification guide" |