178 lines
No EOL
6 KiB
Bash
Executable file
178 lines
No EOL
6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Script to verify The Events Calendar and Community Events plugin activation status
|
|
# Usage: ./verify-tec-plugins.sh [staging_url] [wp_cli_path]
|
|
|
|
# Load environment variables from .env if present
|
|
if [ -f "$SCRIPT_DIR/../.env" ]; then
|
|
set -o allexport
|
|
source "$SCRIPT_DIR/../.env"
|
|
set +o allexport
|
|
fi
|
|
|
|
# Ensure wp-cli is installed and available locally (for local use only)
|
|
if [ -f "$SCRIPT_DIR/install-and-verify-wp-cli.sh" ]; then
|
|
bash "$SCRIPT_DIR/install-and-verify-wp-cli.sh"
|
|
fi
|
|
|
|
# Default values
|
|
STAGING_URL=${1:-"https://wordpress-974670-5399585.cloudwaysapps.com"}
|
|
# Use MASTER credentials for Cloudways VPS
|
|
WP_CLI_REMOTE_PATH="${UPSKILL_STAGING_PATH:-/home/974670.cloudwaysapps.com/uberrxmprk/public_html}/wp-content/plugins/hvac-community-events"
|
|
WP_CLI_REMOTE="cd $WP_CLI_REMOTE_PATH && wp"
|
|
SSH_USER="${UPSKILL_STAGING_MASTER_SSH_USER:-master_kczkabufnc}"
|
|
SSH_IP="${UPSKILL_STAGING_IP:-146.190.76.204}"
|
|
SSHPASS="${UPSKILL_STAGING_MASTER_SSH_PASS:-tmvKuJQ8QptF}"
|
|
|
|
# Debug: Print resolved SSH variables
|
|
echo "DEBUG: Using SSH_USER=$SSH_USER, SSH_IP=$SSH_IP, WP_CLI_REMOTE_PATH=$WP_CLI_REMOTE_PATH"
|
|
|
|
# Helper to run wp-cli remotely with sshpass
|
|
run_wp_remote() {
|
|
local cmd="$1"
|
|
sshpass -p "$SSHPASS" ssh -o StrictHostKeyChecking=no "$SSH_USER@$SSH_IP" "$WP_CLI_REMOTE $cmd --url=$STAGING_URL --allow-root"
|
|
}
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[0;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo "=== The Events Calendar Plugin Verification ==="
|
|
echo "Checking plugin activation status on: $STAGING_URL"
|
|
echo ""
|
|
|
|
# Required plugins to check
|
|
declare -a REQUIRED_PLUGINS=(
|
|
"the-events-calendar"
|
|
"events-calendar-pro"
|
|
"the-events-calendar-community-events"
|
|
"event-tickets"
|
|
"event-tickets-plus"
|
|
)
|
|
|
|
# Function to check if a plugin is active
|
|
check_plugin() {
|
|
local plugin=$1
|
|
local plugin_name=$2
|
|
|
|
echo -n "Checking $plugin_name... "
|
|
|
|
# Use WP-CLI to check if plugin is active
|
|
# This assumes WP-CLI is configured to work with the staging site
|
|
RESULT=$(run_wp_remote "plugin is-active $plugin")
|
|
if [[ $? -eq 0 ]]; then
|
|
echo -e "${GREEN}ACTIVE${NC}"
|
|
return 0
|
|
else
|
|
echo -e "${RED}NOT ACTIVE${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Function to get plugin details
|
|
get_plugin_details() {
|
|
local plugin=$1
|
|
|
|
echo "Getting details for $plugin..."
|
|
run_wp_remote "plugin get $plugin --format=json" 2>/dev/null || echo "{}"
|
|
}
|
|
|
|
# Track overall status
|
|
OVERALL_STATUS=0
|
|
|
|
# Check each required plugin
|
|
echo "=== Required Plugins ==="
|
|
check_plugin "the-events-calendar" "The Events Calendar" || OVERALL_STATUS=1
|
|
check_plugin "events-calendar-pro" "Events Calendar PRO" || OVERALL_STATUS=1
|
|
check_plugin "the-events-calendar-community-events" "Community Events" || OVERALL_STATUS=1
|
|
check_plugin "event-tickets" "Event Tickets" || OVERALL_STATUS=1
|
|
check_plugin "event-tickets-plus" "Event Tickets Plus" || OVERALL_STATUS=1
|
|
|
|
echo ""
|
|
echo "=== Plugin Details ==="
|
|
|
|
# Get and display detailed information about each plugin
|
|
for plugin in "${REQUIRED_PLUGINS[@]}"; do
|
|
DETAILS=$(get_plugin_details $plugin)
|
|
|
|
# Extract version and status using grep and cut
|
|
VERSION=$(echo $DETAILS | grep -o '"version":"[^"]*"' | cut -d'"' -f4)
|
|
STATUS=$(echo $DETAILS | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [[ -z "$VERSION" ]]; then
|
|
echo -e "${plugin}: ${RED}Not installed${NC}"
|
|
else
|
|
if [[ "$STATUS" == "active" ]]; then
|
|
echo -e "${plugin}: ${GREEN}v${VERSION} (Active)${NC}"
|
|
else
|
|
echo -e "${plugin}: ${YELLOW}v${VERSION} (Inactive)${NC}"
|
|
OVERALL_STATUS=1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "=== Checking Plugin Dependencies ==="
|
|
|
|
# Check if The Events Calendar is active before Community Events
|
|
check_plugin "the-events-calendar" "The Events Calendar" > /dev/null
|
|
TEC_ACTIVE=$?
|
|
|
|
check_plugin "the-events-calendar-community-events" "Community Events" > /dev/null
|
|
CE_ACTIVE=$?
|
|
|
|
if [[ $TEC_ACTIVE -eq 0 && $CE_ACTIVE -eq 0 ]]; then
|
|
echo -e "${GREEN}✓ Community Events and its required dependency (The Events Calendar) are both active.${NC}"
|
|
elif [[ $TEC_ACTIVE -eq 1 && $CE_ACTIVE -eq 0 ]]; then
|
|
echo -e "${RED}✗ Community Events is active but its required dependency (The Events Calendar) is not active!${NC}"
|
|
OVERALL_STATUS=1
|
|
fi
|
|
|
|
# Check if Event Tickets is active before Event Tickets Plus
|
|
check_plugin "event-tickets" "Event Tickets" > /dev/null
|
|
ET_ACTIVE=$?
|
|
|
|
check_plugin "event-tickets-plus" "Event Tickets Plus" > /dev/null
|
|
ETP_ACTIVE=$?
|
|
|
|
if [[ $ET_ACTIVE -eq 0 && $ETP_ACTIVE -eq 0 ]]; then
|
|
echo -e "${GREEN}✓ Event Tickets Plus and its required dependency (Event Tickets) are both active.${NC}"
|
|
elif [[ $ET_ACTIVE -eq 1 && $ETP_ACTIVE -eq 0 ]]; then
|
|
echo -e "${RED}✗ Event Tickets Plus is active but its required dependency (Event Tickets) is not active!${NC}"
|
|
OVERALL_STATUS=1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Checking Plugin Shortcodes ==="
|
|
|
|
# Check if shortcodes are registered by looking at the rendered HTML
|
|
echo "Checking Community Events shortcodes..."
|
|
MANAGE_EVENT_HTML=$(run_wp_remote "eval 'echo do_shortcode(\"[tribe_community_events]\");'")
|
|
|
|
if [[ $MANAGE_EVENT_HTML == *"tribe-community-events"* ]]; then
|
|
echo -e "${GREEN}✓ [tribe_community_events] shortcode is working${NC}"
|
|
else
|
|
echo -e "${RED}✗ [tribe_community_events] shortcode is not rendering properly${NC}"
|
|
OVERALL_STATUS=1
|
|
fi
|
|
|
|
MY_EVENTS_HTML=$(run_wp_remote "eval 'echo do_shortcode(\"[tribe_community_events view=\\\"list\\\"]\");'")
|
|
|
|
if [[ $MY_EVENTS_HTML == *"tribe-community-events-list"* ]]; then
|
|
echo -e "${GREEN}✓ [tribe_community_events view=\"list\"] shortcode is working${NC}"
|
|
else
|
|
echo -e "${RED}✗ [tribe_community_events view=\"list\"] shortcode is not rendering properly${NC}"
|
|
OVERALL_STATUS=1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Summary ==="
|
|
if [[ $OVERALL_STATUS -eq 0 ]]; then
|
|
echo -e "${GREEN}All required plugins are active and properly configured.${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}Some plugins are missing or not properly configured. See details above.${NC}"
|
|
exit 1
|
|
fi |