#!/bin/bash

PKG_NAME="WordPress"
PKG_DIR="wordpress"
WEBSITE_ROOT="/var/services/web/$PKG_DIR"
CONF_FILE="wp-config.php"
MIGRATE_DB_VERSION="0134"
CONFIG_SAMPLE="wp-config-sample-0121.php"
INIT_DB_NAME="wordpress"
INIT_DB_USER="wordpress_user"
INFO_FILE="/usr/syno/etc/packages/$PKG_NAME/$PKG_DIR.conf"

CustomWizCreate()
{
	local output="$1"
	echo "WP_CONF_FILE='" >> "${output}"
	cat "$CONFIG_SAMPLE" | openssl enc -A -base64 >> "${output}"
	echo "'" >> "${output}"
}

CustomSetBackupPath()
{
	BACKUP_PATH="$(CustomGetBackupPrefix)"
}

CustomMainInstall()
{
	if [ -d "$BACKUP_PATH" ]; then
		GEN_WP_CONF "$BACKUP_PATH"
	fi
}

GEN_WP_CONF()
{
	local path="$1"
	# before 0122, no version value record
	local version=$(get_key_value "$INFO_FILE" "version")
	if [ ! -s "$path/$CONF_FILE" ] && [ -z "$version" ]; then
		# We need to add back the wp-config.php
		echo "$WP_CONF_FILE" | openssl enc -base64 -d > "$path/$CONF_FILE"
		sed -i "s|'DB_NAME',.*|'DB_NAME','wordpressblog');|g" "$path/$CONF_FILE"
		sed -i "s|'DB_USER',.*|'DB_USER','wordpress');|g" "$path/$CONF_FILE"
		sed -i "s|'DB_PASSWORD',.*|'DB_PASSWORD','');|g" "$path/$CONF_FILE"
	fi
}


CustomParseDBConf()
{
	local path="$1"
	local db_info="$2"
	local grep_info="$3"
	local info_output=$(CustomGetValueFromMetaFile "$db_info")

	if [ -z "$info_output" ] && [ -s "$path/$CONF_FILE" ]; then
		info_output=$(grep "$grep_info" "$path/$CONF_FILE" | cut -d\' -f4 | UnQuotePHP)
	fi

	echo "$info_output"
}

CustomGetDBName()
{
	local db_name=$(CustomParseDBConf "$1" "db_name" "DB_NAME")
	if [ -z "$db_name" ]; then
		db_name="$pkgwizard_db_name"
	fi
	echo "$db_name"
}

CustomGetDBUser()
{
	local db_user=$(CustomParseDBConf "$1" "db_user" "DB_USER")
	if [ -z "$db_user" ]; then
		db_user="$pkgwizard_db_user_account"
	fi
	echo "$db_user"

}

CustomGetDBPass()
{
	CustomParseDBConf "$1" "db_pass" "DB_PASSWORD"
}

UnQuotePHP()
{
	sed -e "s|\\\\'|'|g" -e 's|\\\\|\\|g'
}
