#!/bin/bash

echo "
### <=========================================================================================> ###
### ---> Replacing Domain Interspire NewtonPMTA.com = Iemchange domain.sh ========> ###
### <=========================================================================================> ###
"

Data=`date +%d/%m/%Y-%T`
DomainAntigo=`hostname | cut -d. -f2-6`
ReverseDNSAntigo=`cat /root/newtonpmta-scripts/reversedns.info`
SendingUser=`cat /root/newtonpmta-scripts/sendinguser.info`
SendingUserPass=`cat /root/newtonpmta-scripts/sendinguserpass.info`
SendingUserPassMysql=`echo -ne $SendingUserPass | base64`
sqlpass=`cat /root/newtonpmta-scripts/sqlpass.info`

echo "
This server is configured with the following domain : $DomainAntigo ...
What domain name would you like to replace $DomainAntigo ? "
read DomainNovo

echo "
This server is configured with the following reverseDNS: $ReverseDNSAntigo ...
If you would like to change your current reverseDNS $ReverseDNSAntigo please type it in "
read ReverseDNSNovo

echo "
This script can completely reset the server installation settings in this case
the database and Interspire will be completely replaced , you will lose the current data from the server ,
Are you sure you want to delete Interspire settings and database ? (yes | no) "
read RedefineIem

echo "
~> Fields of change in $Data : 
~> Domain $DomainAntigo changed too $DomainNovo
~> ReverseDNS $ReverseDNSAntigo changed too $ReverseDNSNovo
### <=========================================================================================> ###
" >> /root/newtonpmta-scripts/Readme.info

echo "
### ~> Setting please wait ... 
### <=========================================================================================> ###
"

if [ $RedefineIem = yes ]
then
	mv /var/www/avex/admin/includes/config.php . 
	mv /var/www/avex/fastimport/includes/conexao/conecta.php . 
	rm -rf /var/www/avex/*
	unzip -q /root/newtonpmta-scripts/backup-local/.Originais/interspire-2015.zip -d /var/www/avex/
	mv config.php /var/www/avex/admin/includes/config.php
	mv conecta.php /var/www/avex/fastimport/includes/conexao/conecta.php
	mysql -uroot -p$sqlpass -e "drop database avex;"
	mysql -uroot -p$sqlpass -e "create database avex;"
	mysql -uroot -p$sqlpass avex < /root/newtonpmta-scripts/backup-local/.Originais/interspire-2015.sql
	mysql -uroot -p$sqlpass avex < /root/newtonpmta-scripts/backup-local/.Originais/email_banned_emails.sql
	chmod 777 /var/www/avex/admin/com/storage/ -R
	chmod 777 /var/www/avex/admin/addons/ -R
	chmod 777 /var/www/avex/admin/temp/ -R
	chmod 777 /var/www/avex/fastimport/ -R
	hmod 777 /var/www/avex/importacao/ -R
	chmod 777 /var/www/avex/admin/includes/config.php
fi

### ~> INFO

sed -i "s/$ReverseDNSAntigo/$ReverseDNSNovo/g" /root/newtonpmta-scripts/reversedns.info
sed -i "s/$DomainAntigo/$DomainNovo/g" /root/newtonpmta-scripts/domain.info
sed -i "s/$ReverseDNSAntigo/$ReverseDNSNovo/g" /root/newtonpmta-scripts/Readme.info
sed -i "s/$DomainAntigo/$DomainNovo/g" /root/newtonpmta-scripts/Readme.info

### ~> DNS

mv /var/named/chroot/var/named/$DomainAntigo.db /var/named/chroot/var/named/$DomainNovo.db
sed -i "s/$ReverseDNSAntigo/$ReverseDNSNovo/g" /var/named/chroot/var/named/$DomainNovo.db
sed -i "s/$DomainAntigo/$DomainNovo/g" /var/named/chroot/var/named/$DomainNovo.db
sed -i "s/$DomainAntigo/$DomainNovo/g" /var/named/chroot/etc/named.rfc1912.zones
sed -i '/DKIM/d' /var/named/chroot/var/named/$DomainNovo.db

/usr/sbin/opendkim-genkey -d $DomainNovo
cat default.txt >> /var/named/chroot/var/named/$DomainNovo.db
echo "" >> /var/named/chroot/var/named/$DomainNovo.db
rm -rf default.txt

service named restart

### ~> MYSQL

mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = 'return@$Domain' WHERE area = 'BOUNCE_ADDRESS'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = 'localhost' WHERE area = 'BOUNCE_SERVER'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = 'return' WHERE area = 'BOUNCE_USERNAME'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = 'cmV0dXJuKnA1MzQ4KnZpcA==' WHERE area = 'BOUNCE_PASSWORD'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = 'localhost' WHERE area = 'SMTP_SERVER'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = '$SendingUser' WHERE area = 'SMTP_USERNAME'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = '$SendingUserPassMysql' WHERE area = 'SMTP_PASSWORD'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = '2525' WHERE area = 'SMTP_PORT'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = '/novalidate-cert' WHERE area = 'BOUNCE_EXTRASETTINGS'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_config_settings SET areavalue = '$SendingUser@$Domain' WHERE area = 'EMAIL_ADDRESS'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_users SET emailaddress = '$SendingUser@$Domain' WHERE userid = '1'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "UPDATE email_users SET adminnotify_email = '$SendingUser@$Domain' WHERE userid = '1'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "update email_usergroups set limit_hourlyemailsrate = '0' where groupname = 'System Admin'; commit; flush privileges;"
mysql -uroot -p$sqlpass avex -e "update email_config_settings set areavalue = '0' where area = 'MAXHOURLYRATE'; commit; flush privileges;"

service mysqld restart

### ~> APACHE

mv /etc/httpd/conf.d/$DomainAntigo.conf /etc/httpd/conf.d/$DomainNovo.conf
sed -i "s/$DomainAntigo/$DomainNovo/g" /var/www/index.html
sed -i "s/$DomainAntigo/$DomainNovo/g" /home/$SendingUser/websites/index.html
sed -i "s/$DomainAntigo/$DomainNovo/g" /var/www/avex/admin/includes/config.php
sed -i "s/$DomainAntigo/$DomainNovo/g" /etc/httpd/conf.d/$DomainNovo.conf
sed -i "s/$DomainAntigo/$DomainNovo/g" /etc/httpd/conf/httpd.conf
sed -i "s/$DomainAntigo/$DomainNovo/g" /etc/squirrelmail/config.php
rm -rf /var/log/httpd/$DomainAntigo*

service httpd restart

### ~> DOVECOT

sed -i "s/$DomainAntigo/$DomainNovo/g" /etc/dovecot.conf

service dovecot restart

### ~> POSTFIX

sed -i "s/$DomainAntigo/$DomainNovo/g" /etc/postfix/main.cf

service postfix restart

### ~> PMTA

sed -i "s/$ReverseDNSAntigo/$ReverseDNSNovo/g" /etc/pmta/config
sed -i "s/$DomainAntigo/$DomainNovo/g" /etc/pmta/config
mv default.private /etc/pmta/$DomainNovo-dkim.key
chown pmta:pmta /etc/pmta/ -R

service pmta restart

### ~> BACKUP

ls /root/newtonpmta-scripts/hostftp.info

if [ $? = 0 ]
then

HostFtp=`cat /root/newtonpmta-scripts/hostftp.info`
UserFtp=`cat /root/newtonpmta-scripts/userftp.info`
UserPassFtp=`cat /root/newtonpmta-scripts/userpassftp.info`

/usr/bin/ftp -in << EOF
open $HostFtp
user $UserFtp $UserPassFtp
bin
mkdir backup-$Domain
bye
EOF

fi

echo "
### ---> ...THIS IS YOUR NEW DNS INFORMATION PLEASE REPLACE YOUR OLD DNS INFORMATION IN THE README FILE WITH THIS...
### <=========================================================================================> ###
"
cat /var/named/chroot/var/named/$DomainNovo.db

echo "
### ---> Synchronizing data , wiping installation, wait ...
### <=========================================================================================> ###
" 
/usr/sbin/ntpdate -u pool.ntp.br >> /dev/null 2>&1 || /usr/bin/rdate -s rdate.cpanel.net >> /dev/null 2>&1
echo server.$DomainNovo > /proc/sys/kernel/hostname
hostname server.$DomainNovo
updatedb

echo "
### ---> Restarting Server ...
### <=========================================================================================> ###
" 

shutdown -r now





