File: //bigscoots/wpo/cloudflare/wpcspc.sh
#!/bin/bash
WPCLIFLAGS="--allow-root --skip-plugins --skip-themes --require=/bigscoots/includes/err_report.php"
# Check if the required arguments are provided
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage:"
echo " $0 install DOMAIN CF_API_EMAIL CF_API_KEY CF_API_KEY_ZONE_ID"
echo " $0 remove DOMAIN"
exit 1
fi
configure_cloudflare_cache() {
if wp ${WPCLIFLAGS} plugin is-installed cache-enabler --path="${wpconfig_path//wp-config.php/}"
then
wp ${WPCLIFLAGS} plugin uninstall cache-enabler --deactivate --path="${wpconfig_path//wp-config.php/}"
fi
wp ${WPCLIFLAGS} plugin install wp-cloudflare-page-cache --activate --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} config set SWCFPC_CF_API_EMAIL "${CF_API_EMAIL}" --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} config set SWCFPC_CF_API_KEY "${CF_API_KEY}" --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} config set SWCFPC_CF_API_ZONE_ID "${CF_API_KEY_ZONE_ID}" --path="${wpconfig_path//wp-config.php/}"
wp --allow-root --skip-themes cfcache enable_cf_cache --path="${wpconfig_path//wp-config.php/}"
wp --allow-root --skip-themes cfcache purge_cache --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_purge_only_html 1 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_disable_cache_purging_queue 1 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_post_flush 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_domain_flush 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_cache_dir_flush 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_clean_files 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_clean_cache_busting 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_clean_minify 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_wp_rocket_purge_on_ccss_generation_complete 0 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_remove_cache_buster 1 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch update swcfpc_config cf_seo_redirect 1 --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} option patch insert swcfpc_config cf_wp_rocket_disable_cache 1 --path="${wpconfig_path//wp-config.php/}"
}
deactivate_cloudflare_cache() {
wp ${WPCLIFLAGS} config delete SWCFPC_CF_API_EMAIL --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} config delete SWCFPC_CF_API_KEY --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} config delete SWCFPC_CF_API_ZONE_ID --path="${wpconfig_path//wp-config.php/}"
wp --allow-root --skip-themes cfcache purge_cache --path="${wpconfig_path//wp-config.php/}"
wp --allow-root --skip-themes cfcache disable_cf_cache --path="${wpconfig_path//wp-config.php/}"
wp ${WPCLIFLAGS} plugin uninstall wp-cloudflare-page-cache --deactivate --path="${wpconfig_path//wp-config.php/}"
}
DOMAIN=$2
case $1 in
install)
if [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ]; then
echo "Usage:"
echo " $0 install DOMAIN CF_API_EMAIL CF_API_KEY CF_API_KEY_ZONE_ID"
exit 1
fi
CF_API_EMAIL=$3
CF_API_KEY=$4
CF_API_KEY_ZONE_ID=$5
# Check if /etc/centminmod-release exists and use the appropriate command
if [ -e /etc/centminmod-release ]; then
wpconfig_path=$(wp ${WPCLIFLAGS} config path --path=/home/nginx/domains/"${DOMAIN}"/public 2>/dev/null)
else
wpconfig_path=$(wp ${WPCLIFLAGS} config path 2>/dev/null)
fi
if [ -n "$wpconfig_path" ]
then
configure_cloudflare_cache &>/dev/null
if echo "$wpconfig_path" | grep -q /home/nginx/domains/
then
chown -R nginx: "${wpconfig_path//wp-config.php/}"
fi
echo "{\"status\":\"success\",\"msg\":\"Cloudflare page caching has now been activated.\"}"
else
echo "{\"status\":\"fail\",\"msg\":\"There was an issue when activating Cloudflare page caching, please contact support.\"}"
exit
fi
;;
remove)
if [ -n "$wpconfig_path" ]
then
deactivate_cloudflare_cache >/dev/null 2>&1
if echo "$wpconfig_path" | grep -q /home/nginx/domains/
then
chown -R nginx: "${wpconfig_path//wp-config.php/}"
fi
echo "{\"status\":\"success\",\"msg\":\"Cloudflare page caching has now been deactivated.\"}"
else
echo "{\"status\":\"fail\",\"msg\":\"There was an issue when deactivating Cloudflare page caching, please contact support.\"}"
fi
;;
*)
echo "Invalid command. Available commands: install, remove"
echo "Usage:"
echo " $0 install DOMAIN CF_API_EMAIL CF_API_KEY CF_API_KEY_ZONE_ID"
echo " $0 remove DOMAIN"
exit 1
;;
esac