#!/usr/bin/env bash source .env APP_NAME='wordpress' CONT_NAME='litespeed' DOC_FD='' help_message(){ case ${1} in "1") echo "Script will get 'DOMAIN' and 'database info'from .env file and install the wordpress site for you at the first time." ;; "2") echo 'Service finished, enjoy your accelarated LiteSpeed server!' ;; esac } domain_filter(){ if [ ! -n "${DOMAIN}" ]; then echo "Parameters not supplied, please check!" exit 1 fi DOMAIN="${1}" DOMAIN="${DOMAIN#http://}" DOMAIN="${DOMAIN#https://}" DOMAIN="${DOMAIN#ftp://}" DOMAIN="${DOMAIN#scp://}" DOMAIN="${DOMAIN#scp://}" DOMAIN="${DOMAIN#sftp://}" DOMAIN=${DOMAIN%%/*} } gen_root_fd(){ DOC_FD="./sites/${1}/" if [ -d "./sites/${1}" ]; then echo -e "[O] The root folder \033[32m${DOC_FD}\033[0m exist." else echo "Creating document root..." bash bin/domain.sh -add ${1} echo "Finished document root." fi } store_credential(){ if [ -f ${DOC_FD}/.db_pass ]; then echo 'Back up old db file.' mv ${DOC_FD}/.db_pass ${DOC_FD}/.db_pass.bk fi if [ ! -n "${MYSQL_DATABASE}" ] || [ ! -n "${MYSQL_USER}" ] || [ ! -n "${MYSQL_PASSWORD}" ]; then echo "Parameters not supplied, please check!" exit 1 fi echo 'Storing database parameter' cat > "${DOC_FD}/.db_pass" << EOT "Database":"${MYSQL_DATABASE}" "Username":"${MYSQL_USER}" "Password":"$(echo ${MYSQL_PASSWORD} | tr -d "'")" EOT } app_download(){ docker-compose exec ${CONT_NAME} su -c "appinstallctl.sh -app ${1} -domain ${2}" } lsws_restart(){ bash bin/webadmin.sh -r } main(){ domain_filter ${DOMAIN} gen_root_fd ${DOMAIN} store_credential app_download ${APP_NAME} ${DOMAIN} lsws_restart help_message 2 } while [ ! -z "${1}" ]; do case ${1} in -[hH] | -help | --help) help_message 1 ;; *) help_message 1 ;; esac shift done main