Adjust function's sequence

This commit is contained in:
Yuk1n0 2021-07-10 18:37:52 +08:00
parent 770240e224
commit 6ea59c4ff3
No known key found for this signature in database
GPG key ID: 19A0D6377E84BEE6

View file

@ -220,122 +220,49 @@ get_libev_ver() {
[ -z ${libev_ver} ] && echo -e "[${red}Error${plain}] Get shadowsocks-libev latest version failed" && exit 1
}
download() {
local filename=$(basename $1)
if [ -f ${1} ]; then
echo "${filename} [found]"
install_check() {
if check_sys packageManager yum || check_sys packageManager apt; then
if centosversion 5; then
return 1
fi
return 0
else
echo "${filename} not found, download now..."
wget --no-check-certificate -c -t3 -T60 -O ${1} ${2} >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo -e "[${red}Error${plain}] Download ${filename} failed."
exit 1
fi
return 1
fi
}
download_files() {
echo
cd ${cur_dir} || exit
if [ "${selected}" == "1" ]; then
get_libev_ver
shadowsocks_libev_file="shadowsocks-libev-$(echo ${libev_ver} | sed -e 's/^[a-zA-Z]//g')"
shadowsocks_libev_url="https://github.com/shadowsocks/shadowsocks-libev/releases/download/${libev_ver}/${shadowsocks_libev_file}.tar.gz"
download "${shadowsocks_libev_file}.tar.gz" "${shadowsocks_libev_url}"
if check_sys packageManager yum; then
download "${shadowsocks_libev_init}" "${shadowsocks_libev_centos}"
elif check_sys packageManager apt; then
download "${shadowsocks_libev_init}" "${shadowsocks_libev_debian}"
fi
elif [ "${selected}" == "2" ]; then
download "${shadowsocks_r_file}.tar.gz" "${shadowsocks_r_url}"
if check_sys packageManager yum; then
download "${shadowsocks_r_init}" "${shadowsocks_r_centos}"
elif check_sys packageManager apt; then
download "${shadowsocks_r_init}" "${shadowsocks_r_debian}"
fi
install_select() {
if ! install_check; then
echo -e "[${red}Error${plain}] Your OS is not supported to run it!"
echo "Please change to CentOS 6+/Debian 7+/Ubuntu 12+ and try again."
exit 1
fi
}
config_firewall() {
if centosversion 6; then
/etc/init.d/iptables status >/dev/null 2>&1
if [ $? -eq 0 ]; then
iptables -L -n | grep -i ${shadowsocksport} >/dev/null 2>&1
if [ $? -ne 0 ]; then
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${shadowsocksport} -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport ${shadowsocksport} -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
else
echo -e "[${green}Info${plain}] port ${green}${shadowsocksport}${plain} already be enabled."
clear
get_libev_ver
while true; do
echo "Which Shadowsocks server you'd select:"
for ((i = 1; i <= ${#software[@]}; i++)); do
hint="${software[$i - 1]}"
echo -e "${green}${i}${plain}) ${hint}"
done
read -p "Please enter a number (Default ${software[0]}):" selected
[ -z "${selected}" ] && selected="1"
case "${selected}" in
1 | 2)
echo
echo "You choose = ${software[${selected} - 1]}"
if [ "${selected}" == "1" ]; then
echo -e "[${green}Info${plain}] Shadowsocks-libev Version: ${libev_ver}"
fi
else
echo -e "[${yellow}Warning${plain}] iptables looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
fi
elif centosversion 7; then
systemctl status firewalld >/dev/null 2>&1
if [ $? -eq 0 ]; then
default_zone=$(firewall-cmd --get-default-zone)
firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/tcp
firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/udp
firewall-cmd --reload
else
echo -e "[${yellow}Warning${plain}] firewalld looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
fi
fi
}
config_shadowsocks() {
if [ "${selected}" == "1" ]; then
local server_value="\"0.0.0.0\""
if get_ipv6; then
server_value="[\"[::0]\",\"0.0.0.0\"]"
fi
if [ ! -d "$(dirname ${shadowsocks_libev_config})" ]; then
mkdir -p $(dirname ${shadowsocks_libev_config})
fi
cat >${shadowsocks_libev_config} <<-EOF
{
"server":${server_value},
"server_port":${shadowsocksport},
"password":"${shadowsockspwd}",
"timeout":300,
"user":"nobody",
"method":"${shadowsockscipher}",
"fast_open":false,
"nameserver":"8.8.8.8"
}
EOF
elif [ "${selected}" == "2" ]; then
if [ ! -d "$(dirname ${shadowsocks_r_config})" ]; then
mkdir -p $(dirname ${shadowsocks_r_config})
fi
cat >${shadowsocks_r_config} <<-EOF
{
"server":"0.0.0.0",
"server_ipv6":"::",
"server_port":${shadowsocksport},
"local_address":"127.0.0.1",
"local_port":1080,
"password":"${shadowsockspwd}",
"timeout":120,
"method":"${shadowsockscipher}",
"protocol":"${shadowsockprotocol}",
"protocol_param":"",
"obfs":"${shadowsockobfs}",
"obfs_param":"",
"redirect":"",
"dns_ipv6":false,
"fast_open":false,
"workers":1
}
EOF
fi
echo
break
;;
*)
echo -e "[${red}Error${plain}] Please only enter a number [1-2]"
;;
esac
done
}
error_detect_depends() {
@ -382,51 +309,6 @@ install_dependencies() {
fi
}
install_check() {
if check_sys packageManager yum || check_sys packageManager apt; then
if centosversion 5; then
return 1
fi
return 0
else
return 1
fi
}
install_select() {
if ! install_check; then
echo -e "[${red}Error${plain}] Your OS is not supported to run it!"
echo "Please change to CentOS 6+/Debian 7+/Ubuntu 12+ and try again."
exit 1
fi
clear
get_libev_ver
while true; do
echo "Which Shadowsocks server you'd select:"
for ((i = 1; i <= ${#software[@]}; i++)); do
hint="${software[$i - 1]}"
echo -e "${green}${i}${plain}) ${hint}"
done
read -p "Please enter a number (Default ${software[0]}):" selected
[ -z "${selected}" ] && selected="1"
case "${selected}" in
1 | 2)
echo
echo "You choose = ${software[${selected} - 1]}"
if [ "${selected}" == "1" ]; then
echo -e "[${green}Info${plain}] Shadowsocks-libev Version: ${libev_ver}"
fi
echo
break
;;
*)
echo -e "[${red}Error${plain}] Please only enter a number [1-2]"
;;
esac
done
}
install_prepare_password() {
echo "Please enter password for ${software[${selected} - 1]}"
read -p "(Default password: shadowsocks):" shadowsockspwd
@ -580,6 +462,124 @@ install_prepare() {
char=$(get_char)
}
config_shadowsocks() {
if [ "${selected}" == "1" ]; then
local server_value="\"0.0.0.0\""
if get_ipv6; then
server_value="[\"[::0]\",\"0.0.0.0\"]"
fi
if [ ! -d "$(dirname ${shadowsocks_libev_config})" ]; then
mkdir -p $(dirname ${shadowsocks_libev_config})
fi
cat >${shadowsocks_libev_config} <<-EOF
{
"server":${server_value},
"server_port":${shadowsocksport},
"password":"${shadowsockspwd}",
"timeout":300,
"user":"nobody",
"method":"${shadowsockscipher}",
"fast_open":false,
"nameserver":"8.8.8.8"
}
EOF
elif [ "${selected}" == "2" ]; then
if [ ! -d "$(dirname ${shadowsocks_r_config})" ]; then
mkdir -p $(dirname ${shadowsocks_r_config})
fi
cat >${shadowsocks_r_config} <<-EOF
{
"server":"0.0.0.0",
"server_ipv6":"::",
"server_port":${shadowsocksport},
"local_address":"127.0.0.1",
"local_port":1080,
"password":"${shadowsockspwd}",
"timeout":120,
"method":"${shadowsockscipher}",
"protocol":"${shadowsockprotocol}",
"protocol_param":"",
"obfs":"${shadowsockobfs}",
"obfs_param":"",
"redirect":"",
"dns_ipv6":false,
"fast_open":false,
"workers":1
}
EOF
fi
}
config_firewall() {
if centosversion 6; then
/etc/init.d/iptables status >/dev/null 2>&1
if [ $? -eq 0 ]; then
iptables -L -n | grep -i ${shadowsocksport} >/dev/null 2>&1
if [ $? -ne 0 ]; then
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${shadowsocksport} -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport ${shadowsocksport} -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
else
echo -e "[${green}Info${plain}] port ${green}${shadowsocksport}${plain} already be enabled."
fi
else
echo -e "[${yellow}Warning${plain}] iptables looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
fi
elif centosversion 7; then
systemctl status firewalld >/dev/null 2>&1
if [ $? -eq 0 ]; then
default_zone=$(firewall-cmd --get-default-zone)
firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/tcp
firewall-cmd --permanent --zone=${default_zone} --add-port=${shadowsocksport}/udp
firewall-cmd --reload
else
echo -e "[${yellow}Warning${plain}] firewalld looks like not running or not installed, please enable port ${shadowsocksport} manually if necessary."
fi
fi
}
download() {
local filename=$(basename $1)
if [ -f ${1} ]; then
echo "${filename} [found]"
else
echo "${filename} not found, download now..."
wget --no-check-certificate -c -t3 -T60 -O ${1} ${2} >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo -e "[${red}Error${plain}] Download ${filename} failed."
exit 1
fi
fi
}
download_files() {
echo
cd ${cur_dir} || exit
if [ "${selected}" == "1" ]; then
get_libev_ver
shadowsocks_libev_file="shadowsocks-libev-$(echo ${libev_ver} | sed -e 's/^[a-zA-Z]//g')"
shadowsocks_libev_url="https://github.com/shadowsocks/shadowsocks-libev/releases/download/${libev_ver}/${shadowsocks_libev_file}.tar.gz"
download "${shadowsocks_libev_file}.tar.gz" "${shadowsocks_libev_url}"
if check_sys packageManager yum; then
download "${shadowsocks_libev_init}" "${shadowsocks_libev_centos}"
elif check_sys packageManager apt; then
download "${shadowsocks_libev_init}" "${shadowsocks_libev_debian}"
fi
elif [ "${selected}" == "2" ]; then
download "${shadowsocks_r_file}.tar.gz" "${shadowsocks_r_url}"
if check_sys packageManager yum; then
download "${shadowsocks_r_init}" "${shadowsocks_r_centos}"
elif check_sys packageManager apt; then
download "${shadowsocks_r_init}" "${shadowsocks_r_debian}"
fi
fi
}
install_libsodium() {
if [ -f /usr/lib/libsodium.a ] || [ -f /usr/lib64/libsodium.a ]; then
echo
@ -742,7 +742,6 @@ install_main() {
fi
ldconfig
download_files
if [ "${selected}" == "1" ]; then
install_mbedtls
ldconfig
@ -774,6 +773,7 @@ install_shadowsocks() {
install_dependencies
install_prepare
config_shadowsocks
download_files
if check_sys packageManager yum; then
config_firewall
fi