HOME


Mini Shell 1.0
DIR: /opt/alt/php-xray/php/smart-advice-plugin/
Upload File :
Current File : //opt/alt/php-xray/php/smart-advice-plugin/run.sh
##
# Copyright (с) Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2022 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# https://www.cloudlinux.com/legal/
##

PATH_TO_PHP=$1
PATH_TO_WP=$2
JSON=$3
CPANEL_USER_EMAILS=$4
CPANEL_URL=$5
DO_UNINSTALL=${6:-"false"}

# Check php version, minimum 5.6
PHP_VERSION=$($PATH_TO_PHP -r "echo PHP_VERSION;")
CODE=$?
if [[ ! "$CODE" -eq 0 ]]; then
  echo "$CODE: Can't get PHP version."
  exit 1
fi

IFS='.' read -ra PHP_VERSION_ARR <<<"$PHP_VERSION"
if [ "${PHP_VERSION_ARR[0]}" -lt 5 ] && [ "${PHP_VERSION_ARR[1]}" -lt 6 ]; then
  echo "PHP version $PHP_VERSION is not supported."
  exit 2
fi

# wrapper already contains all necessary directives to enable
# and additional wp-cli options like --skip-themes
COMMAND="/opt/clwpos/wp-cli-wrapped $PATH_TO_PHP $PATH_TO_WP"

# Check WordPress version, minimum 5.0
WORDPRESS_VERSION=$(CL_SMART_ADVICE_DISABLED=1 $COMMAND core version)
CODE=$?
if [[ ! "$CODE" -eq 0 ]]; then
  echo "$CODE: Error reading WordPress versions."
  echo "$WORDPRESS_VERSION"
  exit 3
fi

IFS='.' read -ra WORDPRESS_VERSION_ARR <<<"$WORDPRESS_VERSION"
if [ "${WORDPRESS_VERSION_ARR[0]}" -lt 5 ]; then
  echo "WordPress version $WORDPRESS_VERSION is not supported."
  exit 4
fi

# Check must use folder
PATH_TO_MU_FOLDER=$(CL_SMART_ADVICE_DISABLED=1 $COMMAND eval "echo WPMU_PLUGIN_DIR;")
CODE=$?
if [[ ! "$CODE" -eq 0 ]]; then
  echo "$CODE: Error reading WordPress constant WPMU_PLUGIN_DIR."
  echo "$PATH_TO_MU_FOLDER"
  exit 5
fi

if [[ -z "$PATH_TO_MU_FOLDER" ]]; then
  echo "The path to the folder with must use plugins is empty."
  exit 6
fi

if [[ ! -d "$PATH_TO_MU_FOLDER" ]]; then
  mkdir -p "$PATH_TO_MU_FOLDER"
  CODE=$?
  if [[ ! "$CODE" -eq 0 ]]; then
    echo "$CODE: Failed creating must use plugin folder."
    exit 7
  fi
fi

# Create symlink to plugin file or Uninstall
PATH_TO_CURRENT_FOLDER=${0/"/run.sh"/""}
PATH_TO_MU_PLUGIN="$PATH_TO_MU_FOLDER/cl-smart-advice.php"
# Uninstall WP SmartAdvice
if [[ "$DO_UNINSTALL" == "true" ]]; then
  if [ -L "$PATH_TO_MU_PLUGIN" ]; then
    UNINSTALL_RESULT=$($COMMAND smart-advice uninstall)
    CODE=$?
    if [[ ! "$CODE" -eq 0 ]]; then
      echo "$CODE: Error uninstalling WP SmartAdvice plugin"
      echo "$UNINSTALL_RESULT"
    fi
    exit 8
  fi
  echo "Error! WP SmartAdvice plugin not installed"
  exit 9
fi

if [ ! -L "$PATH_TO_MU_PLUGIN" ]; then
  # Delete the plugin file if is not symlink
  if [ -e "$PATH_TO_MU_PLUGIN" ]; then
    # Not symlink but file exists
    rm -f "$PATH_TO_MU_PLUGIN"
  fi
  ln -s "$PATH_TO_CURRENT_FOLDER/cl-smart-advice.php" "$PATH_TO_MU_PLUGIN"
  CODE=$?
  if [[ ! "$CODE" -eq 0 ]]; then
    LS=$(ls -al "$PATH_TO_MU_FOLDER" | head -n 2 | tail -1)
    echo "$CODE: Failed creating symlink to plugin file (Folder info: $LS)."
    exit 10
  fi
fi

# Sync and notify
if [[ -n "$JSON" ]]; then
  # Sync advices
  SYNC_RESULT=$($COMMAND smart-advice sync --list="$JSON" --cpanel_url="$CPANEL_URL" --cpanel_user_emails="$CPANEL_USER_EMAILS")
  CODE=$?
  if [[ "$CODE" -eq 1 ]]; then
    echo "$CODE: Failed run wp-cli command smart-advice sync."
    echo "$SYNC_RESULT"
    exit 11
  fi
fi

# Check site's health
HEALTH_RESULT=$($COMMAND option get home)
CODE=$?
if [[ ! "$CODE" -eq 0 ]]; then
  rm "$PATH_TO_MU_PLUGIN"
  echo "$CODE: Failed run wp-cli command, site's health status failed. Plugin removed."
  echo "$HEALTH_RESULT"
  exit 12
fi

exit 0