#!/bin/bash

# info: get database credentials and other basic data of domain
# options: DOMAIN [SUBFOLDER]
#
# The function get database credentials and other basic data of domain.

#----------------------------------------------------------#
#                    Variable&Function                     #
#----------------------------------------------------------#

whoami=$(whoami)
if [ "$whoami" != "root" ]; then
    echo "You must be root to execute this script"
    exit 1
fi

# Argument definition
DOMAIN=$1
SUBFOLDER=''
if [ $# -gt 1 ]; then
    SUBFOLDER=$2
fi

# Importing system environment
source /etc/profile

# Includes
source /usr/local/vesta/func/main.sh
source /usr/local/vesta/func/db.sh

#----------------------------------------------------------#
#                    Verifications                         #
#----------------------------------------------------------#

check_args '1' "$#" 'DOMAIN [SUBFOLDER]'
is_domain_format_valid "$DOMAIN"

USER=$(/usr/local/vesta/bin/v-search-domain-owner "$DOMAIN")
if [ -z "$USER" ]; then
    echo "Error: domain $DOMAIN does not exists"
    exit 2
fi

#----------------------------------------------------------#
#                       Action                             #
#----------------------------------------------------------#

SITE_FOLDER="/home/$USER/web/$DOMAIN/public_html"
CHECK_PUBLIC_SHTML=$(/usr/local/vesta/bin/v-list-web-domain "$USER" "$DOMAIN" | grep 'SSL:' | grep -c 'single')
if [ $CHECK_PUBLIC_SHTML -eq 1 ]; then
    SITE_FOLDER="/home/$USER/web/$DOMAIN/public_shtml"
fi

if [ ! -z "$SUBFOLDER" ]; then
    SITE_FOLDER="${SITE_FOLDER}/${SUBFOLDER}"
fi

CMS_TYPE=''

if [ -f "$SITE_FOLDER/wp-config.php" ]; then
    CMS_TYPE='wordpress'
    CONFIG_FILE="wp-config.php"
    CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE"
fi
if [ -f "$SITE_FOLDER/configuration.php" ]; then
    CMS_TYPE='joomla'
    CONFIG_FILE="configuration.php"
    CONFIG_FILE_FULL_PATH="$SITE_FOLDER/$CONFIG_FILE"
fi

if [ "$CMS_TYPE" = "wordpress" ]; then
    CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup"
    cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|('|( '|g" $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|');|' );|g" $CONFIG_FILE_FULL_PATH_BACKUP
    DATABASE_NAME=$(grep 'DB_NAME' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
    DATABASE_USERNAME=$(grep 'DB_USER' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
    DATABASE_PASSWORD=$(grep 'DB_PASSWORD' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
    DATABASE_HOSTNAME=$(grep 'DB_HOST' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $3}' | sed -e "s/^'//" -e "s/'$//")
    rm $CONFIG_FILE_FULL_PATH_BACKUP
fi

if [ "$CMS_TYPE" = "joomla" ]; then
    CONFIG_FILE_FULL_PATH_BACKUP="${CONFIG_FILE_FULL_PATH}_backup"
    cp $CONFIG_FILE_FULL_PATH $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|//.*$||g" $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|='|= '|g" $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|= '| = '|g" $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|  =| =|g" $CONFIG_FILE_FULL_PATH_BACKUP
    sed -i "s|';$|'|g" $CONFIG_FILE_FULL_PATH_BACKUP
    DATABASE_NAME=$(grep 'public $db ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
    DATABASE_USERNAME=$(grep 'public $user ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
    DATABASE_PASSWORD=$(grep 'public $password ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
    DATABASE_HOSTNAME=$(grep 'public $host ' $CONFIG_FILE_FULL_PATH_BACKUP | awk '{print $4}' | sed -e "s/^'//" -e "s/'$//")
    rm $CONFIG_FILE_FULL_PATH_BACKUP
fi

if [ ! -z "$DATABASE_NAME" ]; then
    DATABASE_NAME_WITHOUT_USER_PREFIX=$(get_database_name_without_user_prefix "$USER" "$DATABASE_NAME")
fi
if [ ! -z "$DATABASE_USERNAME" ]; then
    DATABASE_USERNAME_WITHOUT_USER_PREFIX=$(get_database_name_without_user_prefix "$USER" "$DATABASE_USERNAME")
fi

DATABASE_NAME_WITHOUT_USER_PREFIX=$(escape_shell_quote $DATABASE_NAME_WITHOUT_USER_PREFIX)
echo "DATABASE_NAME_WITHOUT_USER_PREFIX=$DATABASE_NAME_WITHOUT_USER_PREFIX"

DATABASE_USERNAME_WITHOUT_USER_PREFIX=$(escape_shell_quote $DATABASE_USERNAME_WITHOUT_USER_PREFIX)
echo "DATABASE_USERNAME_WITHOUT_USER_PREFIX=$DATABASE_USERNAME_WITHOUT_USER_PREFIX"

DATABASE_NAME=$(escape_shell_quote $DATABASE_NAME)
echo "DATABASE_NAME=$DATABASE_NAME"

DATABASE_USERNAME=$(escape_shell_quote $DATABASE_USERNAME)
echo "DATABASE_USERNAME=$DATABASE_USERNAME"

DATABASE_PASSWORD=$(escape_shell_quote $DATABASE_PASSWORD)
echo "DATABASE_PASSWORD=$DATABASE_PASSWORD"

DATABASE_HOSTNAME=$(escape_shell_quote $DATABASE_HOSTNAME)
echo "DATABASE_HOSTNAME=$DATABASE_HOSTNAME"

CONFIG_FILE_FULL_PATH=$(escape_shell_quote $CONFIG_FILE_FULL_PATH)
echo "CONFIG_FILE_FULL_PATH=$CONFIG_FILE_FULL_PATH"

CONFIG_FILE=$(escape_shell_quote $CONFIG_FILE)
echo "CONFIG_FILE=$CONFIG_FILE"

CMS_TYPE=$(escape_shell_quote $CMS_TYPE)
echo "CMS_TYPE=$CMS_TYPE"

SITE_FOLDER=$(escape_shell_quote $SITE_FOLDER)
echo "SITE_FOLDER=$SITE_FOLDER"

USER=$(escape_shell_quote $USER)
echo "SITE_USER=$USER"

#----------------------------------------------------------#
#                       Vesta                              #
#----------------------------------------------------------#

# Logging
log_event "$OK" "$ARGUMENTS"

exit