#!/bin/sh /etc/rc.common

START=70

USE_PROCD=1
NAME=frpc
PROG="/usr/bin/frpc"

prepare_ini() {
	sn=$(cat /app/config/fac.ini | awk '/sn =/{print $3}')
	[ -z "$sn" ] && sn=$(cat /app/config/fac.ini | awk -F'=' '/sn=/{print $2}')
	[ -n "$sn" ] && {
		local tmp=`cat /etc/frpc.ini|grep USER_NAME`
		if [[ "$tmp" != "" ]]
		then
			sed -i.bak "s/USER_NAME/$sn/g" /etc/frpc.ini
		else
			local user_right=`cat /etc/frpc.ini|grep "^user = $sn"`
			if [[ "$user_right" != "" ]]
			then
				echo "user is right, no need change"
			else
				echo "set user to $sn"
				sed -i "s/^user = [0-9A-Za-z]\+/user = $sn/" /etc/frpc.ini
			fi
		fi

		tmp=`cat /etc/frpc.ini|grep ssh_random`
		if [[ "$tmp" != "" ]]
		then
			sed -i "s/ssh_random/ssh_$sn/g" /etc/frpc.ini
		else
			local name_right=`cat /etc/frpc.ini|grep "ssh_$sn"`
			if [[ "$name_right" != "" ]]
			then
				echo "name is right, no need change"
			else
				echo "set name to $sn"
				sed -i "s/ssh_[0-9A-Za-z]\+/ssh_$sn/" /etc/frpc.ini
			fi
		fi
	}
}

start_service() {
	prepare_ini
	procd_open_instance
	procd_set_param respawn 3600 30 0
	procd_set_param command "$PROG"
	procd_append_param command -c /etc/frpc.ini
  procd_set_param nice -20
	procd_close_instance
}

stop() {
	service_stop /usr/bin/frpc
}

restart() {
	(stop;sleep 1;start)&
}

reload() {
	/usr/bin/frpc reload -c /etc/frpc.ini
}

