#!/bin/sh
#VERSION=0.0.6
#This script is written by Martynas Bendorius and DirectAdmin
#cPanel->DirectAdmin backup conversion tool

#usage:
# $0 <full path to cpanel backup> [<full path to directadmin backup directory>]

removeLockfile() {
	rm -f ${LOCKFILE}
	trap - INT TERM EXIT
}

do_exit() {
	if [ "$2" != "" ]; then
		echo "$2"
	fi
	removeLockfile
	exit $1
}

MYUID=`/usr/bin/id -u`
if [ "$MYUID" != 0 ]; then
	echo "You require Root Access to run this script";
	exit 0;
fi

if [ $# -lt 1 ]; then
	echo "Usage:";
	echo "$0 <full path to cpanel backup> [<full path to directadmin backup directory>]";
	echo "you gave #$#: $0 $1 $2";
	exit 0;
fi

CPANEL_BACKUP=$1
WORKDIR=`pwd`

if echo ${CPANEL_BACKUP} | grep -m1 -q '^/' | grep -m1 -q 'tar\.gz$'; then
	do_exit 1 "${CPANEL_BACKUP} is incorrect FULL path to the backup file. Exiting."
fi

if [ $# != 2 ]; then
	DIRECTADMIN_BACKUPS=${WORKDIR}/directadmin
else
	DIRECTADMIN_BACKUPS=$2
fi

if [ "${DIRECTADMIN_BACKUPS}" = "" ] || [ "${DIRECTADMIN_BACKUPS}" = "/" ]; then
	do_exit 100 "Full path to DA backups cannot be set to ${DIRECTADMIN_BACKUPS}. Exiting..."
fi

getOpt() {
	#$1 is option name
	GET_OPTION="`grep -v \"^$1=$\" ${CPANEL_USER_CONF} | grep -m1 \"^$1=\" | cut -d= -f2`"
	if [ "${GET_OPTION}" = "" ]; then
		GET_OPTION=unlimited
	fi
	echo ${GET_OPTION}
}

getPkgOpt() {
	#$1 is option name, $2 path to package file
	GET_OPTION="`grep -v \"^$1=$\" \"${2}\" | grep -m1 \"^$1=\" | cut -d= -f2`"
	if [ "${GET_OPTION}" = "" ]; then
		GET_OPTION=unlimited
	fi
	echo ${GET_OPTION}
}

USERNAME=`echo "${CPANEL_BACKUP}" | grep -o '[A-Za-z0-9]*.tar.gz' | perl -p0 -e 's|\.tar\.gz||g'`
if [ "${USERNAME}" = "" ]; then
	do_exit 2 "Unable to extract username from tarball name"
fi

CPANEL_USER_CONF=${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/cp/${USERNAME}

echo "Converting ${USERNAME} (${CPANEL_BACKUP})..."

#Cleanup
if [ -d ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert ]; then
	echo "Found previous ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert. Removing..."
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
fi
if [ -d ${DIRECTADMIN_BACKUPS}/${USERNAME} ]; then
	echo "Found previous ${DIRECTADMIN_BACKUPS}/${USERNAME}. Removing..."
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}
fi

USERNAME_LEN=`echo -n "${USERNAME}" | wc -c`
MAX_USERNAME_LEN=`/usr/local/directadmin/directadmin c | grep -m1 '^max_username_length=' | cut -d= -f2`
if [ ${USERNAME_LEN} -gt ${MAX_USERNAME_LEN} ]; then
	do_exit 101 "Max username length (${MAX_USERNAME_LEN}) is smaller than cPanel username (${USERNAME_LEN})"
fi

NS1="`/usr/local/directadmin/directadmin c | grep -m1 '^ns1=' | cut -d= -f2`"
NS2="`/usr/local/directadmin/directadmin c | grep -m1 '^ns2=' | cut -d= -f2`"

mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains
mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup
if [ -d ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert ]; then
	echo "Found previous instance of ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert, removing..."
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
fi
mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert

tar xzfC ${CPANEL_BACKUP} ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert --strip=1
if [ $? -ne 0 ]; then
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
	do_exit 4 "Failed to extract ${CPANEL_BACKUP} to ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert"
fi

if [ ! -s ${CPANEL_USER_CONF} ]; then
	do_exit 3 "Unable to find cPanel user configuration in ${CPANEL_USER_CONF}"
fi

if [ ! -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/shadow ]; then
	echo "Unable to find ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/shadow, exiting..."
	echo "Removing ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert..."
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
	do_exit 5
fi

if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir.tar ]; then
	if [ ! -d ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir ]; then
		echo "Creating empty ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir..."
		mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir
	fi
	echo "Extracting homedir.tar..."
	tar xfC ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir.tar ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir
	if [ $? -ne 0 ]; then
		rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
		do_exit 6 "Failed to extract ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir.tar"
	fi
fi

#Copy the shadow file
cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/shadow > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/.shadow

#Get default domain name
DEFAULT_DOMAIN_NAME=`getOpt DNS`
if [ "${DEFAULT_DOMAIN_NAME}" = "unlimited" ]; then
	do_exit 103 "Unable to get default domain name..."
fi
DEFAULT_IP=`getOpt IP`
if [ "${DEFAULT_IP}" = "unlimited" ]; then
	echo "Unable to get default IP address"
	DEFAULT_IP=127.0.0.1
fi
DEFAULT_CGI=`getOpt CGI`
if [ "${DEFAULT_CGI}" = "unlimited" ]; then
	DEFAULT_CGI=OFF
fi
CPANEL_MAXPARK=`getOpt MAXPARK`
CPANEL_MAXFTP=`getOpt MAXFTP`
CPANEL_MAXSQL=`getOpt MAXSQL`
CPANEL_MAXSUB=`getOpt MAXSUB`
CPANEL_MAXPOP=`getOpt MAXPOP`
CPANEL_MAXLST=`getOpt MAXLST`
CPANEL_MAXADDON=`getOpt MAXADDON`
if [ "${CPANEL_MAXADDON}" = "0" ]; then
    CPANEL_MAXADDON="unlimited"
fi
CPANEL_BWLIMIT=`getOpt BWLIMIT`
if [ "${CPANEL_BWLIMIT}" = "0" ]; then
    CPANEL_BWLIMIT="unlimited"
fi
CPANEL_PLAN=`getOpt PLAN`
CPANEL_PLAN="`echo \"${CPANEL_PLAN}\" | tr ' ' '_'`"
CPANEL_OWNER=`getOpt OWNER`
if [ "${CPANEL_OWNER}" = "root" ]; then
	CPANEL_OWNER="admin"
fi
CPANEL_QUOTA=`cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/quota`
if [ "${CPANEL_QUOTA}" = "0" ]; then
    CPANEL_QUOTA="unlimited"
fi
if [ "${CPANEL_BWLIMIT}" != "unlimited" ]; then
	CPANEL_BWLIMIT=`expr ${CPANEL_BWLIMIT} / 1048576`
fi

#Set customer email address
if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.contactemail ]; then
	CUSTOMER_EMAIL="`head -n1 ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.contactemail`"
else
	CUSTOMER_EMAIL="${USERNAME}@${DEFAULT_DOMAIN_NAME}"
fi

doConvertDomain() {
	CONVERTED_DOMAIN=$1
	DEFAULT_DOMAIN=$2
	ASSOCIATED_SUBDOMAIN=$3
	echo "Converting ${CONVERTED_DOMAIN} domain..."
	mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains/${CONVERTED_DOMAIN}
	mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}

    #Local or remote delivery
    CPANEL_MAILDELIVERY=`getOpt MXCHECK-${CONVERTED_DOMAIN}`
    DIRECTADMIN_DOMAIN_LOCALDELIVERY=1
    if ! echo "${CPANEL_MAILDELIVERY}" | grep -m1 -q "0"; then
        DIRECTADMIN_DOMAIN_LOCALDELIVERY=0
    fi
	
	#Create domain.usage
	CONVERTED_DOMAIN_USAGE="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.usage"
	echo "bandwidth=0" > ${CONVERTED_DOMAIN_USAGE}
	echo "log_quota=0" >> ${CONVERTED_DOMAIN_USAGE}
	echo "quota=0" >> ${CONVERTED_DOMAIN_USAGE}

	#Create domain.conf
	CONVERTED_DOMAIN_CONF="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.conf"
	echo -n '' >${CONVERTED_DOMAIN_CONF}
	if [ -e ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL ]; then
		echo "SSLCACertificateFile=/usr/local/directadmin/data/users/${USERNAME}/domains/${CONVERTED_DOMAIN}.cacert" >> ${CONVERTED_DOMAIN_CONF}
		echo "SSLCertificateFile=/usr/local/directadmin/data/users/${USERNAME}/domains/${CONVERTED_DOMAIN}.cert" >> ${CONVERTED_DOMAIN_CONF}
		echo "SSLCertificateKeyFile=/usr/local/directadmin/data/users/${USERNAME}/domains/${CONVERTED_DOMAIN}.key" >> ${CONVERTED_DOMAIN_CONF}
	fi
	echo "UseCanonicalName=OFF" >> ${CONVERTED_DOMAIN_CONF}
	echo "active=yes" >> ${CONVERTED_DOMAIN_CONF}
	echo "bandwidth=unlimited" >> ${CONVERTED_DOMAIN_CONF}
	if [ "${DEFAULT_CGI}" = "1" ]; then
		echo "cgi=ON" >> ${CONVERTED_DOMAIN_CONF}
	else
		echo "cgi=OFF" >> ${CONVERTED_DOMAIN_CONF}
	fi
	if ${DEFAULT_DOMAIN}; then
		echo "defaultdomain=yes" >> ${CONVERTED_DOMAIN_CONF}
	else
		echo "defaultdomain=no" >> ${CONVERTED_DOMAIN_CONF}
	fi
	echo "domain=${CONVERTED_DOMAIN}" >> ${CONVERTED_DOMAIN_CONF}
	echo "ip=${DEFAULT_IP}" >> ${CONVERTED_DOMAIN_CONF}
	echo "local_domain=${CONVERTED_DOMAIN_CONF}" >> ${CONVERTED_DOMAIN_CONF}
	echo "open_basedir=ON" >> ${CONVERTED_DOMAIN_CONF}
	echo "php=ON" >> ${CONVERTED_DOMAIN_CONF}
	echo "private_html_is_link=1" >> ${CONVERTED_DOMAIN_CONF}
	echo "quota=unlimited" >> ${CONVERTED_DOMAIN_CONF}
	echo "safemode=OFF" >> ${CONVERTED_DOMAIN_CONF}
	echo "ssl=ON" >> ${CONVERTED_DOMAIN_CONF}
	echo "suspended=no" >> ${CONVERTED_DOMAIN_CONF}
	echo "username=${USERNAME}" >> ${CONVERTED_DOMAIN_CONF}

	#Create ftp.conf
	CONVERTED_DOMAIN_FTP="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/ftp.conf"
	echo "Anonymous=no" > ${CONVERTED_DOMAIN_FTP}
	echo "AnonymousUpload=no" > ${CONVERTED_DOMAIN_FTP}
	echo "AuthUserFile=/usr/local/directadmin/data/users/${USERNAME}/ftp.passwd" > ${CONVERTED_DOMAIN_FTP}
	echo "DefaultRoot=/home/${USERNAME}/domains/${CONVERTED_DOMAIN}/public_ftp" > ${CONVERTED_DOMAIN_FTP}
	echo "ExtendedLog=/var/log/proftpd/${DEFAULT_IP}.bytes" > ${CONVERTED_DOMAIN_FTP}
	echo "MaxClients=10" > ${CONVERTED_DOMAIN_FTP}
	echo "MaxLoginAttempts=3" > ${CONVERTED_DOMAIN_FTP}
	echo "ServerAdmin=${CUSTOMER_EMAIL}" > ${CONVERTED_DOMAIN_FTP}
	echo "ServerName=ProFTPd" > ${CONVERTED_DOMAIN_FTP}
	if ${DEFAULT_DOMAIN}; then
		echo "defaultdomain=yes" > ${CONVERTED_DOMAIN_FTP}
	else
		echo "defaultdomain=no" > ${CONVERTED_DOMAIN_FTP}
	fi
	echo "ip=${DEFAULT_IP}" > ${CONVERTED_DOMAIN_FTP}
	
	#Create ftp.passwd
	CONVERTED_DOMAIN_FTP_PASSWD="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/ftp.passwd"
	echo -n '' > ${CONVERTED_DOMAIN_FTP_PASSWD}
	CPANEL_FTP_PASSWD=${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/proftpdpasswd
	for i in `cat ${CPANEL_FTP_PASSWD}`; do {
		FTP_USER="`echo ${i} | cut -d: -f1`"
		FTP_PASS="`echo ${i} | cut -d: -f2`"
		FTP_UID="`echo ${i} | cut -d: -f3`"
		FTP_GID="`echo ${i} | cut -d: -f4`"
		FTP_DIR="`echo ${i} | cut -d: -f6`"
		
		if [ "${FTP_USER}" = "${USERNAME}" ]; then
			echo "${FTP_USER}=passwd=${FTP_PASS}&path=${FTP_DIR}&type=system" >> ${CONVERTED_DOMAIN_FTP_PASSWD}
		else
			if echo ${FTP_USER} | grep -m1 -q '\@'; then
				FTP_USER_AT_DOMAIN=${FTP_USER}
			else
				FTP_USER_AT_DOMAIN="${FTP_USER}@${CONVERTED_DOMAIN}"
			fi
			if ! ${DEFAULT_DOMAIN}; then
				if grep -m1 -q "^documentroot: ${FTP_DIR}$" ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${ASSOCIATED_SUBDOMAIN}; then
					echo "${FTP_USER_AT_DOMAIN}=passwd=${FTP_PASS}&path=${FTP_DIR}&type=domain" >> ${CONVERTED_DOMAIN_FTP_PASSWD}
				else
					echo "${FTP_USER_AT_DOMAIN}=passwd=${FTP_PASS}&path=${FTP_DIR}&type=custom" >> ${CONVERTED_DOMAIN_FTP_PASSWD}
				fi
			elif grep -m1 -q "^documentroot: ${FTP_DIR}$" ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}; then
				echo "${FTP_USER_AT_DOMAIN}=passwd=${FTP_PASS}&path=${FTP_DIR}&type=domain" >> ${CONVERTED_DOMAIN_FTP_PASSWD}
			else
				echo "${FTP_USER_AT_DOMAIN}=passwd=${FTP_PASS}&path=${FTP_DIR}&type=custom" >> ${CONVERTED_DOMAIN_FTP_PASSWD}
			fi
		fi
	}
	done
	
	#Copy SSL cert/key/cacert
	if [ -e ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL ]; then
		if grep -m1 -q '^sslcacertificatefile: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL; then
			CACERT_NAME="`grep -m1 '^sslcacertificatefile: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL | grep -o '[^/]*\.cabundle'`"
			if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sslcerts/${CACERT_NAME} ]; then
				echo "Copying ${CACERT_NAME} CA root certificate..."
				mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sslcerts/${CACERT_NAME} ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.cacert
			else
				#No CA Bundle in backup, likely Comodo bundle
				cat <<< "-----BEGIN CERTIFICATE-----
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy
MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh
bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh
bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0
Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6
ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51
UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n
c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY
MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz
30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG
BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv
bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB
AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E
T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p
mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/
e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps
P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY
dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc
2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG
V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4
HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX
j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII
0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap
lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
+AZxAeKCINT+b72x
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
pu/xO28QOG8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----" > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.cacert
			fi
		fi
		if grep -m1 -q '^sslcertificatefile: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL; then
			CERT_NAME="`grep -m1 '^sslcertificatefile: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL | grep -o '[^/]*\.crt'`"
			if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sslcerts/${CERT_NAME} ]; then
				echo "Copying ${CERT_NAME} SSL certificate..."
				mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sslcerts/${CERT_NAME} ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.cert
			fi
		fi
		if grep -m1 -q '^sslcacertificatefile: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL; then
			KEY_NAME="`grep -m1 '^sslcertificatekeyfile: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${CONVERTED_DOMAIN}_SSL | grep -o '[^/]*\.key'`"
			if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sslkeys/${KEY_NAME} ]; then
				echo "Copying ${CERT_NAME} SSL private key..."
				mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sslkeys/${KEY_NAME} ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.key
			fi
		fi
	fi
	
	#Create subdomains.list
	CONVERTED_DOMAIN_SUBDOMAINS="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/subdomain.list"
	echo -n '' > ${CONVERTED_DOMAIN_SUBDOMAINS}
	for i in `cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sds | grep ${CONVERTED_DOMAIN}`; do {
		SUBDOMAIN_PART=`echo ${i} | cut -d= -f2 | cut -d_ -f1`
		DOMAIN_PART=`echo ${i} | cut -d_ -f2`
		if [ "${DOMAIN_PART}" = "${CONVERTED_DOMAIN}" ]; then
			echo "Converting subdomain ${SUBDOMAIN_PART}.${DOMAIN_PART}..."
			echo "${SUBDOMAIN_PART}" >> ${CONVERTED_DOMAIN_SUBDOMAINS}
		fi
	}
	done
	
	#Create DNS zone
	CONVERTED_DOMAIN_DNS="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/${CONVERTED_DOMAIN}.db" 
	CPANEL_DNS_DATA=${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/dnszones/${CONVERTED_DOMAIN}.db
	if [ -s ${CPANEL_DNS_DATA} ]; then
		cp -f ${CPANEL_DNS_DATA} ${CONVERTED_DOMAIN_DNS}
		perl -pi -e "s|${CONVERTED_DOMAIN}.*IN.SOA|@\tIN\tSOA|g" ${CONVERTED_DOMAIN_DNS}
		# Change DKIM records to have quoted strings
		#for i in `grep DKIM1 ${CONVERTED_DOMAIN_DNS} | grep -o '" [a-zA-Z0-9+]*$' | awk '{print $2}'`; do { REPLACE=`echo "${i}" | perl -p0 -e 's|\+|\\\\+|g' | perl -p0 -e 's|\/|\\\\/|g'`; perl -pi -e "s|${REPLACE}|\"${i}\"|g" ${CONVERTED_DOMAIN_DNS}; }; done
		sed -i '/DKIM1/d' ${CONVERTED_DOMAIN_DNS}
		perl -pi -e 's|^;.*||g' ${CONVERTED_DOMAIN_DNS}
	else
		cat <<< "\$TTL 14400
@       IN      SOA     ${NS1}.      hostmaster.${CONVERTED_DOMAIN}. (
												2003120200
												14400
												3600
												1209600
												86400 )

${CONVERTED_DOMAIN}.     14400   IN      NS      ${NS1}.
${CONVERTED_DOMAIN}.     14400   IN      NS      ${NS2}.

ftp     14400   IN      A       ${DEFAULT_IP}
${CONVERTED_DOMAIN}.     14400   IN      A       ${DEFAULT_IP}
mail    14400   IN      A       ${DEFAULT_IP}
pop    14400   IN      A       ${DEFAULT_IP}
smtp    14400   IN      A       ${DEFAULT_IP}
www     14400   IN      A       ${DEFAULT_IP}" > ${CONVERTED_DOMAIN_DNS}
	
		#Subdomain DNS records
		for i in `cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/sds | grep ${CONVERTED_DOMAIN}`; do {
			SUBDOMAIN_PART=`echo ${i} | cut -d= -f2 | cut -d_ -f1`
			#Create temporary DNS records list
			echo "${SUBDOMAIN_PART}     14400   IN      A       ${DEFAULT_IP}" >> ${CONVERTED_DOMAIN_DNS}
		}
		done
	
		# Copy MX records
		grep 'IN.*MX' ${CPANEL_DNS_DATA} >> ${CONVERTED_DOMAIN_DNS}
	fi
	
	#Create empty email data directory
	mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/data
	
	#Move data for non-default domains
	if ! ${DEFAULT_DOMAIN}; then
		echo "Moving add-on domains data"
		PATH_TO_FILES=`grep '^documentroot: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/userdata/${ASSOCIATED_SUBDOMAIN} | awk '{print $2}' | perl -p0 -e "s|/home/${USERNAME}/||g"`
		if [ "${PATH_TO_FILES}" != "public_html" ]; then
			if [ -d ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/${PATH_TO_FILES} ]; then
				mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/${PATH_TO_FILES} ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains/${CONVERTED_DOMAIN}/public_html
			else
				mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains/${CONVERTED_DOMAIN}/public_html
			fi
		else
			echo "|?DOCROOT=/home/${USERNAME}/${PATH_TO_FILES}|" > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/domain.cust_httpd
		fi
	fi
	
	#Create dependencies
	touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/autoresponder.conf
	echo 'catchall=:fail:' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/email.conf
	touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/vacation.conf
	
	#Copy email aliases
	echo "${USERNAME}:${USERNAME}" > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/aliases
	if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/va/${CONVERTED_DOMAIN} ]; then
			echo "Copying email aliases..."
			grep -v '^*:' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/va/${CONVERTED_DOMAIN} | grep -v "${USERNAME}: " | perl -p0 -e "s|\@${CONVERTED_DOMAIN}:|:|g" | perl -p0 -e 's|: |:|g' >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/aliases
			for autoresponder in `grep '/usr/local/cpanel/bin/autorespond' ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/aliases | cut -d: -f1`; do {
				AUTORESPONDER_FILE=`grep "^${autoresponder}:" ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/aliases | grep -o "/usr/local/cpanel/bin/autorespond [^ ]*" | head -n1 | awk '{print $2}'`
				if [ -s "${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.autorespond/${AUTORESPONDER_FILE}" ]; then
					CURRENT_TIMESTAMP=`date +%s`
					if [ -e "${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.autorespond/${AUTORESPONDER_FILE}.json" ]; then
						BACKUP_AUTORESPONDER=false
						STOP_TIMESTAMP=`grep -o 'stop":[0-9]*' "${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.autorespond/${AUTORESPONDER_FILE}.json" | cut -d: -f2`
						if [ ${CURRENT_TIMESTAMP} -lt ${STOP_TIMESTAMP} ]; then
							BACKUP_AUTORESPONDER=true
						fi
					fi
					if ${BACKUP_AUTORESPONDER}; then
						echo "Creating ${autoresponder}@${CONVERTED_DOMAIN} autoresponder..."
						echo "${autoresponder}:" >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/autoresponder.conf
						if [ ! -d ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply ]; then
							mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply
						fi
						awk -v 'RS=\n\n' '1;{exit}' "${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.autorespond/${AUTORESPONDER_FILE}" > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers
						perl -pi -e 's|utf-8|UTF-8|g' ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers
						perl -pi -e 's|Content-type:|Content-Type:|g' ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers
						if grep -m1 -q '^Subject: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers; then
							grep -m1 '^Subject: ' ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers | perl -p0 -e 's|Subject: ||g' | tr -cd 'a-zA-Z0-9 ' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.subject
							perl -ni -e "print unless /^Subject:/" ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers
						else
							echo 'Vacation' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.subject
						fi
						echo -n '2d' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.once_time
						HEADER_LINES=`cat ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.headers | wc -l`
						HEADER_LINES=`expr ${HEADER_LINES} + 1`
						tail -n +${HEADER_LINES} "${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.autorespond/${AUTORESPONDER_FILE}" > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/reply/${autoresponder}.msg
						perl -ni -e "print unless /^${autoresponder}:/" ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/aliases
					fi
				fi
			}
			done
	fi
	
	#Convert RoundCube data
	if [ -s ${WORKDIR}/php_sql_parser/PHPSQLParser.php ] && [ -e ${WORKDIR} ] && [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/roundcube.sql ]; then
		echo "Generating roundcube.xml..."
		if ${DEFAULT_DOMAIN}; then
			SCRIPT_ARG="is_maindomain=1"
		else
			SCRIPT_ARG="is_maindomain=0"
		fi
		/usr/local/bin/php ${WORKDIR}/cpanel_da_roundcube.php ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/roundcube.sql ${CONVERTED_DOMAIN} ${SCRIPT_ARG} ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup
	fi

	#Transfer emails
	if [ ! -s ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/passwd ]; then
		echo -n '' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/passwd
	fi

	if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/etc/${CONVERTED_DOMAIN}/shadow ]; then
		for i in `cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/etc/${CONVERTED_DOMAIN}/shadow`; do {
			EMAIL_USER="`echo \"${i}\" | cut -d: -f1`"
			EMAIL_PASSWORD="`echo \"${i}\" | cut -d: -f2 | perl -pi -e 's|\*LOCKED\*||g'`"
			echo "${EMAIL_USER}:${EMAIL_PASSWORD}" >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/passwd
			mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/data/imap/${EMAIL_USER}
			echo "Moving email data of ${EMAIL_USER}@${CONVERTED_DOMAIN}"
			mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/mail/${CONVERTED_DOMAIN}/${EMAIL_USER} ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/data/imap/${EMAIL_USER}/Maildir
			if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/data/imap/${EMAIL_USER}/Maildir/courierimapsubscribed ]; then
				mv ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/data/imap/${EMAIL_USER}/Maildir/courierimapsubscribed ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${CONVERTED_DOMAIN}/email/data/imap/${EMAIL_USER}/.mailboxlist
			fi
		}
		done
	else
		echo "No emails to transfer for ${CONVERTED_DOMAIN}."
	fi
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/mail/${CONVERTED_DOMAIN}
}

#Creating domain pointers
echo "Adding domain aliases..."
for i in `ls ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/vad`; do {
	if [ "${i}" = "${DEFAULT_DOMAIN_NAME}" ]; then
		continue
	fi
	FORWARDER_PARENT_DOMAIN="`awk '{print $2}' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/vad/${i}`"
	if [ "${FORWARDER_PARENT_DOMAIN}" = "" ]; then
		FORWARDER_PARENT_DOMAIN=${DEFAULT_DOMAIN_NAME}
	fi
	mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}
	touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/domain.pointers
	#Check for email accounts in domain pointers and transfer them
	#Convert RoundCube data
#Commented out, because it roundcube PHP script auto-creates alias domain dir, and DA treats it as domain then ($xml_path = $directadmin_backup_directory . '/' . $domain.'/email/data';)
#	if [ -s ${WORKDIR}/php_sql_parser/PHPSQLParser.php ] && [ -e ${WORKDIR} ] && [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/roundcube.sql ]; then
#		echo "Generating roundcube.xml..."
#		/usr/local/bin/php ${WORKDIR}/cpanel_da_roundcube.php ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/roundcube.sql ${i} is_maindomain=0 ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup
#	fi
	#Transfer emails
	if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/etc/${i}/shadow ]; then
		if [ ! -s ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/passwd ]; then
			if [ ! -d ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email ]; then
				mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email
			fi
			echo -n '' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/passwd
		fi
		for e in `cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/etc/${i}/shadow`; do {
			EMAIL_USER="`echo \"${e}\" | cut -d: -f1`"
			EMAIL_PASSWORD="`echo \"${e}\" | cut -d: -f2 | perl -pi -e 's|\*LOCKED\*||g'`"
			if ! grep -m1 -q "^${EMAIL_USER}:" ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/passwd; then
				echo "${EMAIL_USER}:${EMAIL_PASSWORD}" >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/passwd
				mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/data/imap/${EMAIL_USER}
				echo "Moving email data of ${EMAIL_USER}@${e}"
				mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/mail/${FORWARDER_PARENT_DOMAIN}/${i}/${EMAIL_USER} ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/data/imap/${EMAIL_USER}/Maildir
				if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${e}/email/data/imap/${EMAIL_USER}/Maildir/courierimapsubscribed ]; then
					cat ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${e}/email/data/imap/${EMAIL_USER}/Maildir/courierimapsubscribed >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/email/data/imap/${EMAIL_USER}/.mailboxlist
				fi
			else
				echo "Skipping ${EMAIL_USER}@${e}, because ${e} is a domain alias of ${FORWARDER_PARENT_DOMAIN}, and ${EMAIL_USER}@${FORWARDER_PARENT_DOMAIN} already exists"
			fi
		}
		done
	else
		echo "No emails to transfer for ${i}."
	fi
	
	echo "${i}=alias" >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/domain.pointers
	#Create DNS zone
	CPANEL_POINTER_DNS_DATA=${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/dnszones/${i}.db
	CONVERTED_POINTER_DNS="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${FORWARDER_PARENT_DOMAIN}/${i}.db"
	if [ -s ${CPANEL_POINTER_DNS_DATA} ]; then
		cp -f ${CPANEL_POINTER_DNS_DATA} ${CONVERTED_POINTER_DNS}
		perl -pi -e "s|${i}.*IN.SOA|@\tIN\tSOA|g" ${CONVERTED_POINTER_DNS}
		#for i in `grep DKIM1 ${CONVERTED_POINTER_DNS} | grep -o '" [a-zA-Z0-9+]*$' | awk '{print $2}'`; do { REPLACE=`echo "${i}" | perl -p0 -e 's|\+|\\\\+|g' | perl -p0 -e 's|\/|\\\\/|g'`; perl -pi -e "s|${REPLACE}|\"${i}\"|g" ${CONVERTED_POINTER_DNS}; }; done
		sed -i '/DKIM1/d' ${CONVERTED_POINTER_DNS}
		perl -pi -e 's|^;.*||g' ${CONVERTED_POINTER_DNS}
	else
		cat <<< "\$TTL 14400
@       IN      SOA     ${NS1}.      hostmaster.${i}. (
												2003120200
												14400
												3600
												1209600
												86400 )

${i}.     14400   IN      NS      ${NS1}.
${i}.     14400   IN      NS      ${NS2}.

ftp     14400   IN      A       ${DEFAULT_IP}
${i}.     14400   IN      A       ${DEFAULT_IP}
mail    14400   IN      A       ${DEFAULT_IP}
pop    14400   IN      A       ${DEFAULT_IP}
smtp    14400   IN      A       ${DEFAULT_IP}
www     14400   IN      A       ${DEFAULT_IP}" > ${CONVERTED_POINTER_DNS}
		# Copy MX records
		grep 'IN.*MX' ${CPANEL_POINTER_DNS_DATA} >> ${CONVERTED_POINTER_DNS}
	fi
}
done

#Convert default domain
doConvertDomain ${DEFAULT_DOMAIN_NAME} true

# Convert addon domains
for i in `cat ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/addons | grep '='`; do {
	ADDON_DOMAIN=`echo ${i} | cut -d= -f1`
	ASSOCIATED_SUBDOMAIN=`echo ${i} | cut -d= -f2 | tr '_' '.'`
	doConvertDomain ${ADDON_DOMAIN} false ${ASSOCIATED_SUBDOMAIN}
}
done

#Move squirrelmail data
if [ -e ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.sqmaildata ]; then
	echo "Moving squirrelmail data"
	if [ ! -d ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/email_data ]; then
		mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/email_data
	fi
	mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/.sqmaildata ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/email_data/squirrelmail
fi

#Move main domain
echo "Moving default domain ${DEFAULT_DOMAIN_NAME} data..."
if [ -d ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/public_html ]; then
	mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/public_html ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains/${DEFAULT_DOMAIN_NAME}/public_html
else
	mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains/${DEFAULT_DOMAIN_NAME}/public_html
fi

#Move user emails
echo "Moving main email account..."
mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/mail ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/Maildir
echo "Removing symlinks from main email account and home folder:"
find ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/Maildir -maxdepth 1 -name '.*' -type l -delete -print
find ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir -maxdepth 1 -type l -delete -print
find ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir -maxdepth 3 -name 'public_html' -type l -delete -print
tar czfp ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/home.tar.gz -C ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir . --exclude=cpbackup-exclude.conf --exclude=.cphorde --exclude=.gemrc --exclude=.contactemail --exclude=.lastlogin --exclude=.cpanel --exclude=tmp --exclude=ssl --exclude=logs --exclude=.zshrc --exclude=.cpaddons --exclude=cpanel3-skel

#Create dependencies
touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/bandwidth.tally
touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/user.usage

#Convert cronjobs
if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/cron/${USERNAME} ]; then
	NUMBER=0
	echo -n '' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/crontab.conf
	echo "Converting cronjobs..."
	grep '^[0-9*]' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/cron/${USERNAME} > ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/cron/${USERNAME}_cronlines
	while read i; do NUMBER=`expr $NUMBER + 1`; echo "${NUMBER}=${i}" >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/crontab.conf; done < ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/cron/${USERNAME}_cronlines
fi

#Generate user.conf
DA_USER_CONF=${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/user.conf
cat <<< "account=ON
additional_bandwidth=0
aftp=ON
api_with_password=yes
bandwidth=${CPANEL_BWLIMIT}
catchall=ON
cgi=ON
creator=${CPANEL_OWNER}
cron=ON
dnscontrol=ON
docsroot=./data/skins/enhanced
domain=${DEFAULT_DOMAIN_NAME}
domainptr=${CPANEL_MAXPARK}
email=${CUSTOMER_EMAIL}
ftp=${CPANEL_MAXFTP}
inode=unlimited
ip=${DEFAULT_IP}
language=en
login_keys=OFF
mysql=${CPANEL_MAXSQL}
name=${USERNAME}
nemailf=${CPANEL_MAXPOP}
nemailml=${CPANEL_MAXLST}
nemailr=unlimited
nemails=unlimited
notify_on_all_question_failures=yes
notify_on_all_twostep_auth_failures=yes
ns1=${NS1}
ns2=${NS2}
nsubdomains=${CPANEL_MAXSUB}
package=${CPANEL_PLAN}
php=ON
quota=${CPANEL_QUOTA}
security_questions=no
sentwarning=no
skin=enhanced
spam=ON
ssh=ON
ssl=ON
suspend_at_limit=ON
suspended=no
sysinfo=ON
twostep_auth=no
username=${USERNAME}
usertype=user
vdomains=${CPANEL_MAXADDON}
zoom=100" > ${DA_USER_CONF}

#Create MySQL databases/users
CPANEL_SQL_FILE=${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql.sql
for i in `grep -o 'ON \`.*' ${CPANEL_SQL_FILE} | awk '{print $2}' | cut -d\\\` -f2 | sort | uniq | tr -d '\\\'`; do {
	if [ "${i}" = "${USERNAME}_%" ]; then
		echo "Skipping ${USERNAME}_%..."
		continue
	fi
	if [ ! -e ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/${i}.sql ]; then
		echo "Skipping ${i}, because database file not found in cPanel backup..."
		continue
	fi
	
	DA_DATABASE_CONF="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${i}.conf"
	DATABASE_NAME="${i}"
	if echo "${i}" | grep -m1 -q '_'; then
		DA_DATABASE_FIRST_PART="`echo \"${i}\" | cut -d_ -f1`"
		DA_DATABASE_WITHOUT_FIRST_PART="`echo \"${i}\" | perl -p0 -e \"s|^${DA_DATABASE_FIRST_PART}_||g\"`"
		if [ "${DA_DATABASE_FIRST_PART}" != "${USERNAME}" ]; then
			echo "WARNING! ${DA_DATABASE_FIRST_PART}_${DA_DATABASE_WITHOUT_FIRST_PART} cannot be owned by ${USERNAME}, renaming database user to ${USERNAME}_${DA_DATABASE_WITHOUT_FIRST_PART}"
			DA_DATABASE_CONF="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${USERNAME}_${DA_DATABASE_WITHOUT_FIRST_PART}.conf"
			DATABASE_NAME="${USERNAME}_${DA_DATABASE_WITHOUT_FIRST_PART}"
		fi
	fi
	echo -n '' > ${DA_DATABASE_CONF}
	ACCESSHOSTS_STRING="accesshosts"
	COUNTER=0
	ESCAPED_DB_NAME=`echo "${i}" | perl -p0 -e 's|\_|\\\\\\\\_|g'`
	echo -n '' > ${DA_DATABASE_CONF}.tmp
	for u in `grep -o "ON \\\`${ESCAPED_DB_NAME}\\\`.*TO '[^ ]*" ${CPANEL_SQL_FILE} | awk '{print $4}' | tr -d ';'`; do {
		COLLATION=""
		if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/${i}.create ]; then
			COLLATION="`grep -o 'DEFAULT CHARACTER SET [^ ]*' ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/${i}.create | awk '{print $4}'`"
		fi
		if [ "${COLLATION}" = "" ]; then
			COLLATION="latin1"
		fi
		if ! grep -m1 -q "^db_collation=" ${DA_DATABASE_CONF}.tmp; then
			echo "db_collation=CATALOG_NAME=def&DEFAULT_CHARACTER_SET_NAME=${COLLATION}&DEFAULT_COLLATION_NAME=latin1_swedish_ci&SCHEMA_NAME=${DATABASE_NAME}&SQL_PATH=" >> ${DA_DATABASE_CONF}.tmp
		fi
		PASSWORD="`grep 'IDENTIFIED BY PASSWORD' ${CPANEL_SQL_FILE} | grep \"TO ${u}[^ ]*\" | grep -m1 -o \"IDENTIFIED BY PASSWORD '\*[^ ]*\" | cut -d\' -f2 | perl -p0 -e 's|^-|*|g'`"
		if [ "${PASSWORD}" = "" ]; then
			echo "WARNING: unable to find database user password for ${u}"
		fi
		USERNAME_PART="`echo \"${u}\" | cut -d\@ -f1 | cut -d\' -f2`"
		if echo "${USERNAME_PART}" | grep -m1 -q '_'; then
			USERNAME_FIRST_PART="`echo \"${USERNAME_PART}\" | cut -d_ -f1`"
			USERNAME_WITHOUT_FIRST_PART="`echo \"${USERNAME_PART}\" | perl -p0 -e \"s|^${USERNAME_FIRST_PART}_||g\"`"
			if [ "${USERNAME_FIRST_PART}" != "${USERNAME}" ]; then
				echo "WARNING! ${USERNAME_FIRST_PART}_${USERNAME_WITHOUT_FIRST_PART} username cannot be set to ${USERNAME}, renaming database user to ${USERNAME}_${USERNAME_WITHOUT_FIRST_PART}"
				USERNAME_PART="${USERNAME}_${USERNAME_WITHOUT_FIRST_PART}"
			fi
		fi
		ACCESSHOST_PART="`echo \"${u}\" | cut -d\@ -f2 | cut -d\' -f2`"
		if ! echo "${ACCESSHOSTS_STRING}" | grep -m1 -q "=${ACCESSHOST_PART}$"; then
			if ! echo "${ACCESSHOSTS_STRING}" | grep -m1 -q "=${ACCESSHOST_PART}&"; then
				if [ ${COUNTER} -eq 0 ]; then
					ACCESSHOSTS_STRING="${ACCESSHOSTS_STRING}=${COUNTER}=${ACCESSHOST_PART}"
				else
					ACCESSHOSTS_STRING="${ACCESSHOSTS_STRING}&${COUNTER}=${ACCESSHOST_PART}"
				fi
				COUNTER=`expr ${COUNTER} + 1`
			fi
		fi
		if ! grep -m1 -q "^${USERNAME_PART}=" ${DA_DATABASE_CONF}.tmp; then
			echo "Creating database user ${USERNAME_PART} for database ${i}..."
			echo "${USERNAME_PART}=alter_priv=Y&alter_routine_priv=Y&create_priv=Y&create_routine_priv=Y&create_tmp_table_priv=Y&create_view_priv=Y&delete_priv=Y&drop_priv=Y&event_priv=Y&execute_priv=Y&grant_priv=N&index_priv=Y&insert_priv=Y&lock_tables_priv=Y&passwd=${PASSWORD}&references_priv=Y&select_priv=Y&show_view_priv=Y&trigger_priv=Y&update_priv=Y" >> ${DA_DATABASE_CONF}.tmp
		fi
		if ! grep -m1 -q "^${USERNAME}=" ${DA_DATABASE_CONF}.tmp; then
			PASSWORD="`grep 'IDENTIFIED BY PASSWORD' ${CPANEL_SQL_FILE} | grep \"TO '${USERNAME}'[^ ]*\" | grep -m1 -o \"IDENTIFIED BY PASSWORD '\*[^ ]*\" | cut -d\' -f2 | perl -p0 -e 's|^-|*|g'`"
			if [ "${PASSWORD}" != "" ]; then
				echo "Creating database user ${USERNAME} for database ${i}..."
				echo "${USERNAME}=alter_priv=Y&alter_routine_priv=Y&create_priv=Y&create_routine_priv=Y&create_tmp_table_priv=Y&create_view_priv=Y&delete_priv=Y&drop_priv=Y&event_priv=Y&execute_priv=Y&grant_priv=N&index_priv=Y&insert_priv=Y&lock_tables_priv=Y&passwd=${PASSWORD}&references_priv=Y&select_priv=Y&show_view_priv=Y&trigger_priv=Y&update_priv=Y" >> ${DA_DATABASE_CONF}.tmp
			fi
		fi

	}
	done
	echo ${ACCESSHOSTS_STRING} > ${DA_DATABASE_CONF}
	cat ${DA_DATABASE_CONF}.tmp >> ${DA_DATABASE_CONF}
	rm -f ${DA_DATABASE_CONF}.tmp
	if [ -e ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/${i}.sql ]; then
		echo "Moving database ${i} files..."
		mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/mysql/${i}.sql ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/${DATABASE_NAME}.sql
	fi
}
done

RESELLER=0
if [ -s ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/resellerconfig/resellers ]; then
	if grep -m1 -q "^${USERNAME}:" ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/resellerconfig/resellers; then
		RESELLER=1
	fi
fi

if [ ${RESELLER} -gt 0 ]; then
	if [ -d ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/cpanel3-skel/public_html ]; then
		mv ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/homedir/cpanel3-skel/public_html ${DIRECTADMIN_BACKUPS}/${USERNAME}/domains/default
	fi
	perl -pi -e 's/usertype=user/usertype=reseller/' ${DA_USER_CONF}
	# Creating backup.conf
	USER_BACKUP_CONF=${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/backup.conf
	if [ ! -e ${USER_BACKUP_CONF} ]; then
		echo -n "" > ${USER_BACKUP_CONF}
		echo "ftp_ip=" >> ${USER_BACKUP_CONF}
		echo "ftp_password=" >> ${USER_BACKUP_CONF}
		echo "ftp_path=/" >> ${USER_BACKUP_CONF}
		echo "ftp_username=" >> ${USER_BACKUP_CONF}
		echo "local_path=" >> ${USER_BACKUP_CONF}
	fi

	# Creating reseller.conf
cat <<< "additional_bandwidth=0
aftp=OFF
api_with_password=yes
bandwidth=${CPANEL_BWLIMIT}
catchall=OFF
cgi=ON
cron=OFF
dnscontrol=OFF
domainptr=${CPANEL_MAXPARK}
ftp=${CPANEL_MAXFTP}
inode=unlimited
login_keys=OFF
mysql=${CPANEL_MAXSQL}
nemailf=${CPANEL_MAXPOP}
nemailml=${CPANEL_MAXLST}
nemailr=unlimited
nemails=unlimited
notify_on_all_question_failures=yes
notify_on_all_twostep_auth_failures=yes
ns1=${NS1}
ns2=${NS2}
nsubdomains=${CPANEL_MAXSUB}
package=${CPANEL_PLAN}
php=ON
quota=${CPANEL_QUOTA}
security_questions=no
sentwarning=no
spam=OFF
ssh=OFF
ssl=ON
sysinfo=OFF
twostep_auth=no
vdomains=${CPANEL_MAXADDON}
userssh=ON
dns=ON
ip=shared
ips=0
oversell=ON
serverip=ON
subject=Your account for |domain| is now ready for use." > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/reseller.conf

	# Creating ip.list
	if [ ! -e ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/ip.list ]; then
		grep "ip=" ${USER_BACKUP_CONF} | cut -d= -f2 > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/ip.list
	fi
	# Creating everything else
	touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/login.hist
	touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/reseller.history
	touch ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/users.list
	if [ -e /usr/local/directadmin/data/users/admin/u_welcome.txt ]; then
		cp -f /usr/local/directadmin/data/users/admin/u_welcome.txt ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/u_welcome.txt
	fi
	
	# Creating empty packages
	mkdir -p ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/packages
	echo -n '' > ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/packages.list
	
	# Transfer packages
	find ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/resellerpackages -print0 | while read -d $'\0' file
	do
		PACKAGEFILE="${file}"
		if [ "${PACKAGEFILE}" != "${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert/resellerpackages" ]; then
			PACKAGENAME="`basename \"${PACKAGEFILE}\"`"
			if [ "${PACKAGENAME}" != "" ] && [ -s "${PACKAGEFILE}" ]; then
				echo "Converting package ${PACKAGENAME}..."
				PACKAGENAME="`echo \"${PACKAGENAME}\" | tr ' ' '_'`"
				PACKAGE_TO_WRITE="${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/packages/${PACKAGENAME}.pkg"
				#Get default domain name
				PKGCPANEL_CGI=`getPkgOpt CGI "${PACKAGEFILE}"`
				if [ "${PKGCPANEL_CGI}" = "y" ]; then
					PKGCPANEL_CGI="ON"
				else
					PKGCPANEL_CGI="OFF"
				fi
				PKGCPANEL_HASSHELL=`getPkgOpt HASSHELL "${PACKAGEFILE}"`
				if [ "${PKGCPANEL_HASSHELL}" = "y" ]; then
					PKGCPANEL_HASSHELL="ON"
				else
					PKGCPANEL_HASSHELL="OFF"
				fi
				PKGCPANEL_MAXPARK=`getPkgOpt MAXPARK "${PACKAGEFILE}"`
				PKGCPANEL_MAXFTP=`getPkgOpt MAXFTP "${PACKAGEFILE}"`
				PKGCPANEL_MAXSQL=`getPkgOpt MAXSQL "${PACKAGEFILE}"`
				PKGCPANEL_MAXSUB=`getPkgOpt MAXSUB "${PACKAGEFILE}"`
				PKGCPANEL_MAXPOP=`getPkgOpt MAXPOP "${PACKAGEFILE}"`
				PKGCPANEL_MAXLST=`getPkgOpt MAXLST "${PACKAGEFILE}"`
				PKGCPANEL_MAXADDON=`getPkgOpt MAXADDON "${PACKAGEFILE}"`
				[[ ${PKGCPANEL_MAXADDON} -eq 0 ]] && PKGCPANEL_MAXADDON="unlimited"
				PKGCPANEL_BWLIMIT=`getPkgOpt BWLIMIT "${PACKAGEFILE}"`
				PKGCPANEL_QUOTA=`getPkgOpt QUOTA "${PACKAGEFILE}"`
				echo "${PACKAGENAME}" >> ${DIRECTADMIN_BACKUPS}/${USERNAME}/backup/packages.list
cat <<< "aftp=OFF
bandwidth=${PKGCPANEL_BWLIMIT}
catchall=OFF
cgi=${PKGCPANEL_CGI}
cron=ON
dnscontrol=ON
domainptr=${PKGCPANEL_MAXPARK}
ftp=${PKGCPANEL_MAXFTP}
inode=unlimited
language=en
login_keys=OFF
mysql=${PKGCPANEL_MAXSQL}
nemailf=${PKGCPANEL_MAXPOP}
nemailml=${PKGCPANEL_MAXLST}
nemailr=unlimited
nemails=unlimited
nsubdomains=${PKGCPANEL_MAXSUB}
php=ON
quota=${PKGCPANEL_QUOTA}
skin=enhanced
spam=ON
ssh=${PKGCPANEL_HASSHELL}
ssl=ON
suspend_at_limit=ON
sysinfo=ON
vdomains=${PKGCPANEL_MAXADDON}" > "${PACKAGE_TO_WRITE}"
			else
				echo "Unable to convert ${PACKAGEFILE}..."
			fi
		fi
	done
fi

echo "Creating DirectAdmin tarball..."
if [ ${RESELLER} -eq 0 ]; then
	TARBALL_NAME=user.${CPANEL_OWNER}.${USERNAME}.tar.gz
else
	TARBALL_NAME=reseller.${CPANEL_OWNER}.${USERNAME}.tar.gz
fi
tar czfp ${DIRECTADMIN_BACKUPS}/${TARBALL_NAME} -C ${DIRECTADMIN_BACKUPS}/${USERNAME} domains backup
if [ $? -ne 0 ]; then
	rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
	do_exit 7 "Unable to create DirectAdmin backup ${DIRECTADMIN_BACKUPS}/${TARBALL_NAME}. Exiting..."
fi

echo "Cleaning up..."
rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}_cpanel_to_convert
rm -rf ${DIRECTADMIN_BACKUPS}/${USERNAME}

echo "Done! ${DIRECTADMIN_BACKUPS}/${TARBALL_NAME} is ready."
exit 0