#!/bin/bash

get_server_ip(){
	read -p "请输入服务端IP地址：" SERVER_IP

	while true
	do
		if echo $SERVER_IP |grep -q -E "^([0-9]{1,3}\.){3}[0-9]{1,3}$";then
			VALID_CHECK=$(echo $SERVER_IP |awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')
			if [ "$VALID_CHECK" = "yes" ];then
				break
			else
				echo "IP地址不合法"
				read -p "重新输入服务端IP地址：" SERVER_IP
			fi
		else
			echo "IP地址不合法"
			read -p "重新输入服务端IP地址：" SERVER_IP
		fi
	done
}

get_server_mac(){
	read -p "请输入服务端MAC地址：" SERVER_MAC

	while true
	do
		if echo $SERVER_MAC |grep -q -E "^([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}$";then
			if echo $SERVER_MAC |grep -q -E "[A-F]";then
				echo "请使用小写字母"
				read -p "重新输入服务端MAC地址：" SERVER_MAC
			else
				break
			fi
		elif echo $SERVER_MAC |grep -q -E "^([[:xdigit:]]{2}-){5}[[:xdigit:]]{2}$";then
			echo "请使用冒号隔开"
			read -p "重新输入服务端MAC地址：" SERVER_MAC
		else
			echo "MAC地址不合法"
			read -p "重新输入服务端MAC地址：" SERVER_MAC
		fi
	done
}

#2. 增加防火墙规则
srs_firewall_rules(){
	bash -c "firewall-cmd --zone=public --permanent --add-port=59000/udp"
	bash -c "firewall-cmd --reload"
	
	echo -e "\033[32mfirewall configure finished.\033[0m"
}
#4. 配置rabbitmq的用户名、密码
srs_rabbitmq_auth_configure(){

	echo -e "\033[31m请输入服务端设置的rabbitmq server用户名及密码\033[0m"

	read -p "请输入用户名：" user
	while [ ! "$user" ] || [ `expr index "$user" " "` -ne 0 ]
	do
		read -p "用户名为空或包含空格，请重新输入用户名：" user
	done
	flag=0
	while [ "$password1"x != "$password2"x ] || [ ! "$password1" ]
	do
		[ $flag -ne 0 ] && echo "密码不一致，请重试"
		read -s -p "请输入密码：" password1 && printf "\n"
		while [ ! "$password1" ] || [ `expr index "$password1" " "` -ne 0 ]
		do
			read -s -p "密码为空或包含空格，请重新输入密码：" password1 && printf "\n"
		done
		read -s -p "再次确认密码：" password2 && printf "\n"
		let flag++
	done
	password=$password2

	echo "NEOKYLIN_SRS_RABBIT_AUTH_USER=$user" > /etc/sysconfig/neokylin_srs_rabbitmq_auth_client
	echo "NEOKYLIN_SRS_RABBIT_AUTH_PASS=$password" >> /etc/sysconfig/neokylin_srs_rabbitmq_auth_client

	[ `grep "NEOKYLIN_SRS_RABBIT_AUTH" /etc/sysconfig/neokylin_srs_rabbitmq_auth_client |wc -l` -eq 2 ] && echo -e "\033[32mSRS_RABBITMQ configure finished.\033[0m" || echo -e "\033[31mSRS_RABBITMQ configure failed.\033[0m"
}

#6. 服务端配置修改
srs_host_ip_change(){

	[ -f /etc/srs/srs_agent.conf ] && sed -i "s/rabbit_host=10.4.0.126/rabbit_host=$SERVER_IP/g" /etc/srs/srs_agent.conf || echo "Error:file /etc/srs/srs_agent.conf not existed."
	[ -f /etc/srs/srs_agent.conf ] && sed -i "s/server_mac=01:02:03:0a:0b:0c/server_mac=$SERVER_MAC/g" /etc/srs/srs_agent.conf || echo "Error:file /etc/srs/srs_agent.conf not existed."

}

#7. 安装完成，服务重启测试
srs_service_restart(){

	systemctl enable srs_client_daemon.service

	echo "Restarting srs_client_daemon.service..."
	systemctl restart srs_client_daemon.service

	echo -e "\033[32mClient install finished.\033[0m"
}

get_server_ip
get_server_mac

srs_firewall_rules
srs_rabbitmq_auth_configure
srs_host_ip_change

srs_service_restart
