93 lines
2.5 KiB
Bash
93 lines
2.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Make this script executable
|
|
chmod +x "$0"
|
|
|
|
# Check if wp-env is installed
|
|
if ! command -v wp-env &> /dev/null; then
|
|
echo "wp-env is not installed. Installing..."
|
|
npm install -g @wordpress/env
|
|
fi
|
|
|
|
# Check if environment type is provided
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: $0 [single|multisite]"
|
|
exit 1
|
|
fi
|
|
|
|
ENV_TYPE=$1
|
|
|
|
if [ "$ENV_TYPE" == "single" ]; then
|
|
echo "Setting up single site environment..."
|
|
|
|
# Start the environment
|
|
wp-env start
|
|
|
|
# Wait for WordPress to be ready with a timeout
|
|
MAX_ATTEMPTS=30
|
|
ATTEMPT=0
|
|
echo "Waiting for WordPress to be ready..."
|
|
until wp-env run cli wp core is-installed || [ $ATTEMPT -ge $MAX_ATTEMPTS ]; do
|
|
ATTEMPT=$((ATTEMPT+1))
|
|
echo "Attempt $ATTEMPT/$MAX_ATTEMPTS..."
|
|
sleep 2
|
|
done
|
|
|
|
if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then
|
|
echo "Timed out waiting for WordPress to be ready."
|
|
exit 1
|
|
fi
|
|
|
|
# Activate our plugin
|
|
if ! wp-env run cli wp plugin activate wp-plugin-starter-template-for-ai-coding; then
|
|
echo "Failed to activate plugin. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
echo "WordPress Single Site environment is ready!"
|
|
echo "Site: http://localhost:8888"
|
|
echo "Admin login: admin / password"
|
|
|
|
elif [ "$ENV_TYPE" == "multisite" ]; then
|
|
echo "Setting up multisite environment..."
|
|
|
|
# Start the environment with multisite configuration
|
|
wp-env start --config=.wp-env.multisite.json
|
|
|
|
# Wait for WordPress to be ready with a timeout
|
|
MAX_ATTEMPTS=30
|
|
ATTEMPT=0
|
|
echo "Waiting for WordPress to be ready..."
|
|
until wp-env run cli wp core is-installed || [ $ATTEMPT -ge $MAX_ATTEMPTS ]; do
|
|
ATTEMPT=$((ATTEMPT+1))
|
|
echo "Attempt $ATTEMPT/$MAX_ATTEMPTS..."
|
|
sleep 2
|
|
done
|
|
|
|
if [ $ATTEMPT -ge $MAX_ATTEMPTS ]; then
|
|
echo "Timed out waiting for WordPress to be ready."
|
|
exit 1
|
|
fi
|
|
|
|
# Create a test site
|
|
if ! wp-env run cli wp site create --slug=testsite --title="Test Site" --email=admin@example.com; then
|
|
echo "Failed to create test site. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
# Network activate our plugin
|
|
if ! wp-env run cli wp plugin activate wp-plugin-starter-template-for-ai-coding --network; then
|
|
echo "Failed to activate plugin. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
echo "WordPress Multisite environment is ready!"
|
|
echo "Main site: http://localhost:8888"
|
|
echo "Test site: http://localhost:8888/testsite"
|
|
echo "Admin login: admin / password"
|
|
|
|
else
|
|
echo "Invalid environment type. Use 'single' or 'multisite'."
|
|
exit 1
|
|
fi
|