chagitqskjdlqskdmslkqdj chatjkqsdjlqskdjqslkdjkslqd azekzkjeqksldjlqsjdlsqd xqlqkzdjlqsdklqsdkslqd
?? Go up: /opt
#!/bin/bash
set -Ceuo pipefail
### vars
PHP_VERSION="$1"
SERVER_ID="$2"
PLUGIN_SRC="$3"
ACTIVATE="$4"
DOMAIN="$5"
SUBNAME=""
ACTIVATE_FLG=""
if [[ $# -ge 6 ]]; then
SUBNAME="$6"
fi
if [[ ${ACTIVATE} -eq 1 ]]; then
ACTIVATE_FLG="--activate"
fi
PHP_PATH="/opt/php-${PHP_VERSION}/bin/php"
## /usr/bin/wp-cliが存在しない場合は/usr/bin/wpを実行
if [[ -f "/usr/bin/wp-cli" ]]; then
WP_CLI_PATH="/usr/bin/wp-cli"
else
WP_CLI_PATH="/usr/bin/wp"
fi
USER_WP_PATH="/home/${SERVER_ID}/${DOMAIN}/public_html${SUBNAME}"
USER_WP_CONFIG="${USER_WP_PATH}/wp-config.php"
### functions
function erroract(){
echo "$1"
exit 1
}
function warnact(){
echo "$1"
exit 0
}
### MAIN
{
if [[ ${USER} = "root" ]]; then
erroract "Script_Error: invalid exec user root."
fi
if [[ ${SERVER_ID} != "${USER}" ]]; then
erroract "Script_Error: invalid argument SERVER_ID."
fi
## PHPバージョン以外の入力値に相対パスが含まれていたらエラーメッセージと1を返す
if [[ ${SERVER_ID} =~ .*\.\./.* || ${PLUGIN_SRC} =~ .*\.\./.* || ${ACTIVATE} =~ .*\.\./.* || ${DOMAIN} =~ .*\.\./.* || ${SUBNAME} =~ .*\.\./.* ]]; then
erroract "Script_Error: invalid argument containing \"../\"."
fi
if [[ ! -f ${USER_WP_CONFIG} ]]; then
warnact "Script_Warning: ${SERVER_ID}'s WordPress is not installed."
fi
cd "${USER_WP_PATH}"
## plugin install が失敗したらエラーメッセージと1を返す
${PHP_PATH} ${WP_CLI_PATH} plugin install "${PLUGIN_SRC}" "${ACTIVATE_FLG}" --force --path="${USER_WP_PATH}" 2>&1 \
|| erroract "Script_Error: wp-cli did not complete successfully."
## サブシェルで実行した出力結果に文字列を付与
} | awk -v user="${USER}" '{print "time:" strftime("%Y-%m-%dT%H:%M:%S%z") "\tuser:" user "\tpath:'"${USER_WP_PATH} "'" "\tmessage:" $0; fflush(); }'