# !/bin/bash
# ████████╗░█████╗░██╗░░██╗░█████╗░██╗░░░██╗██████╗░███╗░░██╗
# ╚══██╔══╝██╔══██╗██║░██╔╝██╔══██╗██║░░░██║██╔══██╗████╗░██║
# ░░░██║░░░██║░░██║█████═╝░██║░░██║╚██╗░██╔╝██████╔╝██╔██╗██║
# ░░░██║░░░██║░░██║██╔═██╗░██║░░██║░╚████╔╝░██╔═══╝░██║╚████║
# ░░░██║░░░╚█████╔╝██║░╚██╗╚█████╔╝░░╚██╔╝░░██║░░░░░██║░╚███║
# ░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝░╚════╝░░░░╚═╝░░░╚═╝░░░░░╚═╝░░╚══╝

RED='\033[0;31m'
NC='\033[0m'
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
LIGHT='\033[0;37m'

clear
MYIP=$(curl -sS ipv4.icanhazip.com)
IP=$(curl -sS ipv4.icanhazip.com)
domain=$(cat /etc/xray/domain)
date=$(date +"%Y-%m-%d");
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
Info="${Green_font_prefix}[ON]${Font_color_suffix}"
Error="${Red_font_prefix}[OFF]${Font_color_suffix}"
cek=$(grep -c -E "^# BEGIN_Backup" /etc/crontab)
if [[ "$cek" = "1" ]]; then
sts="${Info}"
else
sts="${Error}"
fi

function start() {
email=$(cat /home/email)
if [[ "$email" = "" ]]; then
clear
echo -e ""
echo -e "▒█▀▀▀ ▒█▀▄▀█ ░█▀▀█ ▀█▀ ▒█░░░ ░░ ▒█▀▀▀█ ▒█▀▀▀ ▀▀█▀▀\033[0m" 
echo -e "▒█▀▀▀ ▒█▒█▒█ ▒█▄▄█ ▒█░ ▒█░░░ ▀▀ ░▀▀▀▄▄ ▒█▀▀▀ ░▒█░░\033[0m" 
echo -e "▒█▄▄▄ ▒█░░▒█ ▒█░▒█ ▄█▄ ▒█▄▄█ ░░ ▒█▄▄▄█ ▒█▄▄▄ ░▒█░░\033[0m"
echo -e "\e[33m──────────────────────────────────────────────────\033[0m"
echo -e "Enter Email To Receive Backup"
read -rp "Input Your Email : " -e email
echo -e "\e[33m──────────────────────────────────────────────────\033[0m"
cat > /home/email << EOF
$email
EOF
fi
cat > /etc/crontab << EOF
# BEGIN_Backup
5 0 * * * root backup
# END_Backup
EOF
service cron restart
sleep 1
echo "Please Wait"
clear
echo "Set-Autobackup Has Been Started"
echo "Data Will Be Backed Up Automatically At 00:05 GMT +7"
exit 0
}

function stop() {
email=$(cat /home/email)
sed -i "/^$email/d" /home/email
sed -i "/^# BEGIN_Backup/,/^# END_Backup/d" /etc/crontab
service cron restart
sleep 1
echo "Please Wait"
clear
echo "Set-Autobackup Has Been Stopped"
exit 0
}

function gantipenerima() {
clear
echo -e ""
echo -e "▒█▀▀▀ ▒█▀▄▀█ ░█▀▀█ ▀█▀ ▒█░░░ ░░ ▒█▀▀▀█ ▒█▀▀▀ ▀▀█▀▀\033[0m" 
echo -e "▒█▀▀▀ ▒█▒█▒█ ▒█▄▄█ ▒█░ ▒█░░░ ▀▀ ░▀▀▀▄▄ ▒█▀▀▀ ░▒█░░\033[0m" 
echo -e "▒█▄▄▄ ▒█░░▒█ ▒█░▒█ ▄█▄ ▒█▄▄█ ░░ ▒█▄▄▄█ ▒█▄▄▄ ░▒█░░\033[0m"
echo -e "\e[33m──────────────────────────────────────────────────\033[0m"
echo -e "Enter Email To Receive Backup"
read -rp "Input Your Email : " -e email
echo -e "\e[33m──────────────────────────────────────────────────\033[0m"
rm -rf /home/email
cat > /home/email << EOF
$email
EOF
}

function gantipengirim() {
clear
echo -e ""
echo -e "▒█▀▀▀ ▒█▀▄▀█ ░█▀▀█ ▀█▀ ▒█░░░ ░░ ▒█▀▀▀█ ▒█▀▀▀ ▀▀█▀▀\033[0m" 
echo -e "▒█▀▀▀ ▒█▒█▒█ ▒█▄▄█ ▒█░ ▒█░░░ ▀▀ ░▀▀▀▄▄ ▒█▀▀▀ ░▒█░░\033[0m" 
echo -e "▒█▄▄▄ ▒█░░▒█ ▒█░▒█ ▄█▄ ▒█▄▄█ ░░ ▒█▄▄▄█ ▒█▄▄▄ ░▒█░░\033[0m"
echo -e "\e[33m──────────────────────────────────────────────────\033[0m"
echo -e "Enter Email To send Backup"
read -rp "Input Your Email : " -e email
echo -e "Please Enter Your Password Email Apps 2 Verivication"
read -rp "Input Password Apps : " -e pwdd
echo -e "\e[33m──────────────────────────────────────────────────\033[0m"
rm -rf /etc/msmtprc
cat > /etc/msmtprc << EOF
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account default
host smtp.gmail.com
port 587
auth on
user $email
from $email
password $pwdd
logfile ~/.msmtp.log
EOF
}

function testemail() {
email=$(cat /home/email)
if [[ "$email" = "" ]]; then
start
fi
email=$(cat /home/email)
echo -e "
▒█▀▀█ ░█▀▀█ ▒█▀▀█ ▒█░▄▀ ▒█░▒█ ▒█▀▀█ 
▒█▀▀▄ ▒█▄▄█ ▒█░░░ ▒█▀▄░ ▒█░▒█ ▒█▄▄█ 
▒█▄▄█ ▒█░▒█ ▒█▄▄█ ▒█░▒█ ░▀▄▄▀ ▒█░░░
────────────────────────────────
Test Backup Vps Server Success
────────────────────────────────
Subdomain vps : $domain
IP Server vps : $MYIP
Date ToBackup : $date
────────────────────────────────
" | mail -s "Test Send Backup Email" $email
echo -e "Test Backup Send Email Success"
sleep 5
autobackup
}

clear
echo -e "\e[33m──────────────────────────────────────────\033[0m"
echo -e "\E[40;1;37m          SET UP AUTOBACKUP SERVER        \E[0m"
echo -e "\e[33m──────────────────────────────────────────\033[0m"
echo -e "  Set-AutoBackup Data $sts"
echo -e ""
echo -e "  [01] Start Autobackup"
echo -e "  [02] Stopp Autobackup"
echo -e "  [03] Ganti Email Penerima"
echo -e "  [04] Ganti Email Pengirim"
echo -e "  [05] Test Backup Send Email"
echo -e "\e[33m──────────────────────────────────────────\033[0m"
read -rp "Please Enter The Correct Number : " -e num
case $num in
1)
start
;;
2)
stop
;;
3)
gantipenerima
;;
4)
gantipengirim
;;
5)
testemail
;;
0) clear ; menu ; exit ;;
x) exit ;;
*) echo "Pilihan anda tidak tersedia! " ; sleep 1 ; autobackup ;;
esac