163 lines
No EOL
4.1 KiB
Bash
Executable file
163 lines
No EOL
4.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Load environment variables
|
|
if [ ! -f ../.env ]; then
|
|
echo "Error: .env file not found!"
|
|
exit 1
|
|
fi
|
|
|
|
source ../.env
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
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 show usage
|
|
show_usage() {
|
|
echo "Usage: $0 [options]"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -f, --force Skip all confirmations"
|
|
echo " -k, --keep-data Keep existing database data"
|
|
echo " -t, --test-data Generate test data after reset (basic|extended|stress)"
|
|
echo " -h, --help Show this help message"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " $0 # Interactive reset"
|
|
echo " $0 -f # Force reset without confirmation"
|
|
echo " $0 -t basic # Reset and generate basic test data"
|
|
echo " $0 -f -t extended # Force reset and generate extended test data"
|
|
echo " $0 -k -t stress # Keep data and add stress test data"
|
|
}
|
|
|
|
# Default values
|
|
FORCE=false
|
|
KEEP_DATA=false
|
|
TEST_DATA=""
|
|
|
|
# Parse command line options
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
-f|--force)
|
|
FORCE=true
|
|
shift
|
|
;;
|
|
-k|--keep-data)
|
|
KEEP_DATA=true
|
|
shift
|
|
;;
|
|
-t|--test-data)
|
|
TEST_DATA="$2"
|
|
shift 2
|
|
;;
|
|
-h|--help)
|
|
show_usage
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Error: Unknown option '$1'"
|
|
show_usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Confirm reset if not forced
|
|
if [ "$FORCE" = false ]; then
|
|
echo -e "${YELLOW}Warning: This will reset your development environment.${NC}"
|
|
if [ "$KEEP_DATA" = false ]; then
|
|
echo -e "${RED}ALL DATA WILL BE LOST!${NC}"
|
|
fi
|
|
read -p "Continue? [y/N] " -n 1 -r
|
|
echo
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "Operation cancelled."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo -e "${BLUE}Starting environment reset...${NC}"
|
|
|
|
# Stop containers
|
|
echo "Stopping containers..."
|
|
docker-compose down
|
|
check_status "Stop containers"
|
|
|
|
# Remove volumes if not keeping data
|
|
if [ "$KEEP_DATA" = false ]; then
|
|
echo "Removing volumes..."
|
|
docker-compose down -v
|
|
check_status "Remove volumes"
|
|
fi
|
|
|
|
# Start containers
|
|
echo "Starting containers..."
|
|
docker-compose up -d
|
|
check_status "Start containers"
|
|
|
|
# Wait for containers to be ready
|
|
echo "Waiting for containers to be ready..."
|
|
sleep 10
|
|
|
|
# Reset database if not keeping data
|
|
if [ "$KEEP_DATA" = false ]; then
|
|
echo "Resetting database..."
|
|
./manage-db.sh reset -y
|
|
check_status "Database reset"
|
|
|
|
# Install WordPress
|
|
echo "Installing WordPress..."
|
|
docker-compose exec wordpress wp core install \
|
|
--url=http://localhost:8080 \
|
|
--title="HVAC Training Events" \
|
|
--admin_user=admin \
|
|
--admin_password=admin \
|
|
--admin_email=admin@example.com \
|
|
--allow-root
|
|
check_status "WordPress installation"
|
|
|
|
# Install and activate required plugins
|
|
echo "Installing required plugins..."
|
|
REQUIRED_PLUGINS=(
|
|
"the-events-calendar"
|
|
"events-calendar-pro"
|
|
"event-tickets"
|
|
"event-tickets-plus"
|
|
"tribe-community-events"
|
|
)
|
|
|
|
for plugin in "${REQUIRED_PLUGINS[@]}"; do
|
|
echo "Installing plugin: $plugin"
|
|
docker-compose exec wordpress wp plugin install "$plugin" --allow-root
|
|
docker-compose exec wordpress wp plugin activate "$plugin" --allow-root
|
|
check_status "Plugin $plugin installation"
|
|
done
|
|
fi
|
|
|
|
# Generate test data if requested
|
|
if [ -n "$TEST_DATA" ]; then
|
|
echo "Generating test data..."
|
|
./manage-db.sh generate-test-data "$TEST_DATA" -y
|
|
check_status "Test data generation"
|
|
fi
|
|
|
|
# Verify environment
|
|
echo "Verifying environment..."
|
|
./verify-dev.sh
|
|
check_status "Environment verification"
|
|
|
|
echo -e "${GREEN}Environment reset completed!${NC}" |