Code refactoring

This commit is contained in:
Teddysun 2016-09-17 16:30:39 +09:00
parent 845357f546
commit 00979d4afb
2 changed files with 292 additions and 262 deletions

View File

@ -9,29 +9,60 @@ export PATH
# Intro: https://teddysun.com/358.html #
#===================================================================#
clear
echo
echo "#############################################################"
echo "# Install Shadowsocks-libev server for Debian or Ubuntu #"
echo "# Intro: https://teddysun.com/358.html #"
echo "# Author: Teddysun <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
#Current folder
# Current folder
cur_dir=`pwd`
shadowsocks_libev_ver="shadowsocks-libev-2.5.2"
# Make sure only root can run our script
rootness(){
if [[ $EUID -ne 0 ]]; then
echo "Error:This script must be run as root!" 1>&2
exit 1
if [[ $EUID -ne 0 ]]; then
echo "Error: This script must be run as root!" 1>&2
exit 1
fi
}
# Disable selinux
disable_selinux(){
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
fi
}
#Check system
get_ip(){
local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip )
[ ! -z ${IP} ] && echo ${IP} || echo
}
get_latest_version(){
ver=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-libev/releases/latest | grep 'tag_name' | cut -d\" -f4)
[ -z ${ver} ] && echo "Error: Get shadowsocks-libev latest version failed" && exit 1
shadowsocks_libev_ver="shadowsocks-libev-$(echo ${ver} | sed -e 's/^[a-zA-Z]//g')"
download_link="https://github.com/shadowsocks/shadowsocks-libev/archive/${ver}.tar.gz"
init_script_link="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian"
}
check_installed(){
if [ "$(command -v "$1")" ]; then
return 0
else
return 1
fi
}
print_info(){
clear
echo "#############################################################"
echo "# Install Shadowsocks-libev server for Debian or Ubuntu #"
echo "# Intro: https://teddysun.com/358.html #"
echo "# Author: Teddysun <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
}
# Check system
check_sys(){
local checkType=$1
local value=$2
@ -77,110 +108,102 @@ check_sys(){
fi
}
# Disable selinux
disable_selinux(){
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
fi
}
get_ip(){
local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip )
[ ! -z ${IP} ] && echo ${IP} || echo
}
# Pre-installation settings
pre_install(){
# Check OS system
if check_sys packageManager apt; then
#Set shadowsocks-libev config password
echo "Please input password for shadowsocks-libev:"
read -p "(Default password: teddysun.com):" shadowsockspwd
[ -z "$shadowsockspwd" ] && shadowsockspwd="teddysun.com"
echo
echo "---------------------------"
echo "password = $shadowsockspwd"
echo "---------------------------"
echo
#Set shadowsocks-libev config port
while true
do
echo -e "Please input port for shadowsocks-libev [1-65535]:"
read -p "(Default port: 8989):" shadowsocksport
[ -z "$shadowsocksport" ] && shadowsocksport="8989"
expr ${shadowsocksport} + 0 &>/dev/null
if [ $? -eq 0 ]; then
if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then
echo
echo "---------------------------"
echo "port = ${shadowsocksport}"
echo "---------------------------"
echo
break
else
echo "Input error! Please input correct numbers."
fi
else
echo "Input error! Please input correct numbers."
fi
done
get_char(){
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo
echo "Press any key to start...or Press Ctrl+C to cancel"
char=`get_char`
# Update System
apt-get -y update
# Install necessary dependencies
apt-get -y --no-install-recommends install wget unzip curl build-essential autoconf libtool openssl libssl-dev zlib1g-dev xmlto asciidoc libpcre3 libpcre3-dev
# Get IP address
echo "Getting Public IP address, Please wait a moment..."
echo -e "Your main public IP is\t\033[32m $(get_ip) \033[0m"
echo
else
if ! check_sys packageManager apt; then
echo "Error: Your OS is not supported to run it! Please change OS to Debian/Ubuntu and try again."
exit 1
fi
# Check installed
check_installed "ss-server"
if [ $? -eq 0 ]; then
echo "Shadowsocks-libev has been installed, nothing to do..."
exit 0
fi
print_info
# Get shadowsocks-libev latest version
get_latest_version
echo "Get the latest version: ${shadowsocks_libev_ver}"
echo
#Set shadowsocks-libev config password
echo "Please input password for shadowsocks-libev:"
read -p "(Default password: teddysun.com):" shadowsockspwd
[ -z "${shadowsockspwd}" ] && shadowsockspwd="teddysun.com"
echo
echo "---------------------------"
echo "password = ${shadowsockspwd}"
echo "---------------------------"
echo
#Set shadowsocks-libev config port
while true
do
echo -e "Please input port for shadowsocks-libev [1-65535]:"
read -p "(Default port: 8989):" shadowsocksport
[ -z "$shadowsocksport" ] && shadowsocksport="8989"
expr ${shadowsocksport} + 0 &>/dev/null
if [ $? -eq 0 ]; then
if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then
echo
echo "---------------------------"
echo "port = ${shadowsocksport}"
echo "---------------------------"
echo
break
else
echo "Input error, please input correct number"
fi
else
echo "Input error, please input correct numbers"
fi
done
get_char(){
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo
echo "Press any key to start...or press Ctrl+C to cancel"
char=`get_char`
# Update System
apt-get -y update
# Install necessary dependencies
apt-get -y --no-install-recommends install curl build-essential autoconf libtool openssl libssl-dev zlib1g-dev xmlto asciidoc libpcre3 libpcre3-dev
echo
cd ${cur_dir}
}
# Download latest shadowsocks-libev
download_files(){
if [ -f ${shadowsocks_libev_ver}.zip ];then
echo "${shadowsocks_libev_ver}.zip [found]"
if [ -f ${shadowsocks_libev_ver}.tar.gz ]; then
echo "${shadowsocks_libev_ver}.tar.gz [found]"
else
if ! wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.2.zip -O ${shadowsocks_libev_ver}.zip; then
echo "Failed to download ${shadowsocks_libev_ver}.zip"
if ! wget --no-check-certificate -O ${shadowsocks_libev_ver}.tar.gz ${download_link}; then
echo "Failed to download ${shadowsocks_libev_ver}.tar.gz"
exit 1
fi
fi
unzip -q ${shadowsocks_libev_ver}.zip
if [ $? -eq 0 ];then
cd ${cur_dir}/${shadowsocks_libev_ver}/
if ! wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian; then
echo "Failed to download shadowsocks-libev start script!"
exit 1
fi
else
echo
echo "Unzip ${shadowsocks_libev_ver}.zip failed! Please visit https://teddysun.com/358.html and contact."
# Download init script
if ! wget --no-check-certificate -O /etc/init.d/shadowsocks ${init_script_link}; then
echo "Failed to download shadowsocks-libev init script!"
exit 1
fi
}
# Config shadowsocks
config_shadowsocks(){
if [ ! -d /etc/shadowsocks-libev ];then
mkdir /etc/shadowsocks-libev
if [ ! -d /etc/shadowsocks-libev ]; then
mkdir -p /etc/shadowsocks-libev
fi
cat > /etc/shadowsocks-libev/config.json<<-EOF
{
@ -195,42 +218,34 @@ config_shadowsocks(){
EOF
}
# Install
install_libev(){
# Build and Install shadowsocks-libev
if [ -s /usr/local/bin/ss-server ];then
echo "shadowsocks-libev has been installed!"
exit 0
else
./configure
make && make install
# Install Shadowsocks-libev
install_shadowsocks(){
tar zxf ${shadowsocks_libev_ver}.tar.gz
cd ${shadowsocks_libev_ver}
./configure
make && make install
if [ $? -eq 0 ]; then
chmod +x /etc/init.d/shadowsocks
update-rc.d -f shadowsocks defaults
# Run shadowsocks in the background
/etc/init.d/shadowsocks start
if [ $? -eq 0 ]; then
# Add run on system start up
mv ${cur_dir}/${shadowsocks_libev_ver}/shadowsocks-libev-debian /etc/init.d/shadowsocks
chmod +x /etc/init.d/shadowsocks
update-rc.d -f shadowsocks defaults
# Run shadowsocks in the background
/etc/init.d/shadowsocks start
# Run success or not
if [ $? -eq 0 ]; then
echo "Shadowsocks-libev start success!"
else
echo "Shadowsocks-libev start failure!"
fi
echo "Shadowsocks-libev start success!"
else
echo
echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/358.html and contact."
exit 1
echo "Shadowsocks-libev start failure!"
fi
else
echo
echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/358.html and contact."
exit 1
fi
cd ${cur_dir}
# Delete shadowsocks-libev folder
rm -rf ${cur_dir}/${shadowsocks_libev_ver}/
# Delete shadowsocks-libev zip file
rm -f ${cur_dir}/${shadowsocks_libev_ver}.zip
rm -rf ${shadowsocks_libev_ver} ${shadowsocks_libev_ver}.tar.gz
clear
echo
echo "Congratulations, shadowsocks-libev install completed!"
echo "Congratulations, Shadowsocks-libev install completed!"
echo -e "Your Server IP: \033[41;37m $(get_ip) \033[0m"
echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m"
echo -e "Your Password: \033[41;37m ${shadowsockspwd} \033[0m"
@ -241,7 +256,6 @@ install_libev(){
echo "Welcome to visit:https://teddysun.com/358.html"
echo "Enjoy it!"
echo
exit 0
}
# Install Shadowsocks-libev
@ -251,27 +265,26 @@ install_shadowsocks_libev(){
pre_install
download_files
config_shadowsocks
install_libev
install_shadowsocks
}
# Uninstall Shadowsocks-libev
uninstall_shadowsocks_libev(){
printf "Are you sure uninstall Shadowsocks-libev? (y/n) "
clear
print_info
printf "Are you sure uninstall Shadowsocks-libev? (y/n)"
printf "\n"
read -p "(Default: n):" answer
if [ -z $answer ]; then
answer="n"
fi
if [ "$answer" = "y" ]; then
ps -ef | grep -v grep | grep -v ps | grep -i "ss-server" > /dev/null 2>&1
[ -z ${answer} ] && answer="n"
if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
ps -ef | grep -v grep | grep -i "ss-server" > /dev/null 2>&1
if [ $? -eq 0 ]; then
/etc/init.d/shadowsocks stop
fi
# remove auto start script
update-rc.d -f shadowsocks remove
# delete config file
rm -rf /etc/shadowsocks-libev
# delete shadowsocks
rm -fr /etc/shadowsocks-libev
rm -f /usr/local/bin/ss-local
rm -f /usr/local/bin/ss-tunnel
rm -f /usr/local/bin/ss-server
@ -293,7 +306,9 @@ uninstall_shadowsocks_libev(){
rm -f /etc/init.d/shadowsocks
echo "Shadowsocks-libev uninstall success!"
else
echo "uninstall cancelled, Nothing to do"
echo
echo "uninstall cancelled, nothing to do..."
echo
fi
}
@ -301,14 +316,14 @@ uninstall_shadowsocks_libev(){
action=$1
[ -z $1 ] && action=install
case "$action" in
install)
install)
install_shadowsocks_libev
;;
uninstall)
uninstall)
uninstall_shadowsocks_libev
;;
*)
echo "Arguments error! [${action} ]"
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` {install|uninstall}"
;;
esac

View File

@ -9,28 +9,60 @@ export PATH
# Intro: https://teddysun.com/357.html #
#===================================================================#
clear
echo "#############################################################"
echo "# Install Shadowsocks-libev server for CentOS 6 or 7 #"
echo "# Intro: https://teddysun.com/357.html #"
echo "# Author: Teddysun <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
#Current folder
# Current folder
cur_dir=`pwd`
shadowsocks_libev_ver="shadowsocks-libev-2.5.2"
# Make sure only root can run our script
rootness(){
if [[ $EUID -ne 0 ]]; then
echo "Error:This script must be run as root!" 1>&2
exit 1
if [[ $EUID -ne 0 ]]; then
echo "Error: This script must be run as root!" 1>&2
exit 1
fi
}
# Disable selinux
disable_selinux(){
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
fi
}
#Check system
get_ip(){
local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip )
[ ! -z ${IP} ] && echo ${IP} || echo
}
get_latest_version(){
ver=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-libev/releases/latest | grep 'tag_name' | cut -d\" -f4)
[ -z ${ver} ] && echo "Error: Get shadowsocks-libev latest version failed" && exit 1
shadowsocks_libev_ver="shadowsocks-libev-$(echo ${ver} | sed -e 's/^[a-zA-Z]//g')"
download_link="https://github.com/shadowsocks/shadowsocks-libev/archive/${ver}.tar.gz"
init_script_link="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev"
}
check_installed(){
if [ "$(command -v "$1")" ]; then
return 0
else
return 1
fi
}
print_info(){
clear
echo "#############################################################"
echo "# Install Shadowsocks-libev server for CentOS 6 or 7 #"
echo "# Intro: https://teddysun.com/357.html #"
echo "# Author: Teddysun <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
}
# Check system
check_sys(){
local checkType=$1
local value=$2
@ -78,7 +110,7 @@ check_sys(){
# Get version
getversion(){
if [[ -s /etc/redhat-release ]];then
if [[ -s /etc/redhat-release ]]; then
grep -oE "[0-9.]+" /etc/redhat-release
else
grep -oE "[0-9.]+" /etc/issue
@ -91,7 +123,7 @@ centosversion(){
local code=$1
local version="$(getversion)"
local main_ver=${version%%.*}
if [ "$main_ver" == "$code" ];then
if [ "$main_ver" == "$code" ]; then
return 0
else
return 1
@ -101,21 +133,6 @@ centosversion(){
fi
}
# Disable selinux
disable_selinux(){
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
fi
}
get_ip(){
local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com )
[ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip )
[ ! -z ${IP} ] && echo ${IP} || echo
}
# Pre-installation settings
pre_install(){
# Check OS system
@ -126,38 +143,54 @@ pre_install(){
exit 1
fi
else
echo "Error: Your OS is not supported to run it! Please change OS to CentOS and try again."
echo "Error: Your OS is not supported to run it, please change OS to CentOS and try again."
exit 1
fi
#Set shadowsocks-libev config password
echo "Please input password for shadowsocks-libev:"
# Check installed
check_installed "ss-server"
if [ $? -eq 0 ]; then
echo "Shadowsocks-libev has been installed, nothing to do..."
exit 0
fi
print_info
# Get shadowsocks-libev latest version
get_latest_version
echo "Get the latest version: ${shadowsocks_libev_ver}"
echo
# Set shadowsocks-libev config password
echo "Please input password for shadowsocks-libev"
read -p "(Default password: teddysun.com):" shadowsockspwd
[ -z "$shadowsockspwd" ] && shadowsockspwd="teddysun.com"
[ -z "${shadowsockspwd}" ] && shadowsockspwd="teddysun.com"
echo
echo "---------------------------"
echo "password = $shadowsockspwd"
echo "password = ${shadowsockspwd}"
echo "---------------------------"
echo
#Set shadowsocks-libev config port
# Set shadowsocks-libev config port
while true
do
echo -e "Please input port for shadowsocks-libev [1-65535]:"
echo -e "Please input port for shadowsocks-libev [1-65535]"
read -p "(Default port: 8989):" shadowsocksport
[ -z "$shadowsocksport" ] && shadowsocksport="8989"
expr $shadowsocksport + 0 &>/dev/null
expr ${shadowsocksport} + 0 &>/dev/null
if [ $? -eq 0 ]; then
if [ $shadowsocksport -ge 1 ] && [ $shadowsocksport -le 65535 ]; then
if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then
echo
echo "---------------------------"
echo "port = $shadowsocksport"
echo "port = ${shadowsocksport}"
echo "---------------------------"
echo
break
else
echo "Input error! Please input correct numbers."
echo "Input error, please input correct number"
fi
else
echo "Input error! Please input correct numbers."
echo "Input error, please input correct number"
fi
done
get_char(){
@ -170,47 +203,36 @@ pre_install(){
stty $SAVEDSTTY
}
echo
echo "Press any key to start...or Press Ctrl+C to cancel"
echo "Press any key to start...or press Ctrl+C to cancel"
char=`get_char`
#Install necessary dependencies
yum install -y wget unzip openssl-devel gcc swig python python-devel python-setuptools
yum install -y autoconf libtool libevent xmlto asciidoc pcre pcre-devel make curl curl-devel
yum install -y automake zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel
# Get IP address
echo "Getting Public IP address, Please wait a moment..."
echo -e "Your main public IP is\t\033[32m $(get_ip) \033[0m"
yum install -y unzip autoconf automake make zlib-devel curl curl-devel libtool libevent xmlto asciidoc pcre pcre-devel openssl-devel gcc perl perl-devel cpio expat-devel gettext-devel
echo
cd ${cur_dir}
}
# Download latest shadowsocks-libev
download_files(){
if [ -f ${shadowsocks_libev_ver}.zip ];then
echo "${shadowsocks_libev_ver}.zip [found]"
if [ -f ${shadowsocks_libev_ver}.tar.gz ]; then
echo "${shadowsocks_libev_ver}.tar.gz [found]"
else
if ! wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.2.zip -O ${shadowsocks_libev_ver}.zip; then
echo "Failed to download ${shadowsocks_libev_ver}.zip"
if ! wget --no-check-certificate -O ${shadowsocks_libev_ver}.tar.gz ${download_link}; then
echo "Failed to download ${shadowsocks_libev_ver}.tar.gz"
exit 1
fi
fi
unzip -q ${shadowsocks_libev_ver}.zip
if [ $? -eq 0 ];then
cd ${cur_dir}/${shadowsocks_libev_ver}/
else
echo
echo "Unzip ${shadowsocks_libev_ver}.zip failed! Please visit https://teddysun.com/357.html and contact."
exit 1
fi
# Download start script
if ! wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev; then
echo "Failed to download shadowsocks-libev start script!"
# Download init script
if ! wget --no-check-certificate -O /etc/init.d/shadowsocks ${init_script_link}; then
echo "Failed to download shadowsocks-libev init script!"
exit 1
fi
}
# Config shadowsocks
config_shadowsocks(){
if [ ! -d /etc/shadowsocks-libev ];then
mkdir /etc/shadowsocks-libev
if [ ! -d /etc/shadowsocks-libev ]; then
mkdir -p /etc/shadowsocks-libev
fi
cat > /etc/shadowsocks-libev/config.json<<-EOF
{
@ -225,7 +247,7 @@ config_shadowsocks(){
EOF
}
# firewall set
# Firewall set
firewall_set(){
echo "firewall set start..."
if centosversion 6; then
@ -245,14 +267,14 @@ firewall_set(){
fi
elif centosversion 7; then
systemctl status firewalld > /dev/null 2>&1
if [ $? -eq 0 ];then
if [ $? -eq 0 ]; then
firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/tcp
firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp
firewall-cmd --reload
else
echo "Firewalld looks like not running, try to start..."
systemctl start firewalld
if [ $? -eq 0 ];then
if [ $? -eq 0 ]; then
firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/tcp
firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp
firewall-cmd --reload
@ -264,42 +286,36 @@ firewall_set(){
echo "firewall set completed..."
}
# Install
install(){
# Build and Install shadowsocks-libev
if [ -s /usr/local/bin/ss-server ];then
echo "shadowsocks-libev has been installed!"
exit 0
else
./configure
make && make install
# Install Shadowsocks-libev
install_shadowsocks(){
tar zxf ${shadowsocks_libev_ver}.tar.gz
cd ${shadowsocks_libev_ver}
./configure
make && make install
if [ $? -eq 0 ]; then
chmod +x /etc/init.d/shadowsocks
# Add run on system start up
chkconfig --add shadowsocks
chkconfig shadowsocks on
# Start shadowsocks
/etc/init.d/shadowsocks start
if [ $? -eq 0 ]; then
mv ${cur_dir}/${shadowsocks_libev_ver}/shadowsocks-libev /etc/init.d/shadowsocks
chmod +x /etc/init.d/shadowsocks
# Add run on system start up
chkconfig --add shadowsocks
chkconfig shadowsocks on
# Start shadowsocks
/etc/init.d/shadowsocks start
if [ $? -eq 0 ]; then
echo "Shadowsocks-libev start success!"
else
echo "Shadowsocks-libev start failure!"
fi
echo "Shadowsocks-libev start success!"
else
echo
echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact."
exit 1
echo "Shadowsocks-libev start failure!"
fi
else
echo
echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact."
exit 1
fi
cd ${cur_dir}
# Delete shadowsocks-libev folder
rm -rf ${cur_dir}/${shadowsocks_libev_ver}/
# Delete shadowsocks-libev zip file
rm -f ${cur_dir}/${shadowsocks_libev_ver}.zip
rm -rf ${shadowsocks_libev_ver} ${shadowsocks_libev_ver}.tar.gz
clear
echo
echo "Congratulations, shadowsocks-libev install completed!"
echo "Congratulations, Shadowsocks-libev install completed!"
echo -e "Your Server IP: \033[41;37m $(get_ip) \033[0m"
echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m"
echo -e "Your Password: \033[41;37m ${shadowsockspwd} \033[0m"
@ -310,26 +326,23 @@ install(){
echo "Welcome to visit:https://teddysun.com/357.html"
echo "Enjoy it!"
echo
exit 0
}
# Uninstall Shadowsocks-libev
uninstall_shadowsocks_libev(){
printf "Are you sure uninstall shadowsocks_libev? (y/n) "
print_info
printf "Are you sure uninstall shadowsocks-libev? (y/n)"
printf "\n"
read -p "(Default: n):" answer
if [ -z $answer ]; then
answer="n"
fi
if [ "$answer" = "y" ]; then
ps -ef | grep -v grep | grep -v ps | grep -i "ss-server" > /dev/null 2>&1
[ -z ${answer} ] && answer="n"
if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
ps -ef | grep -v grep | grep -i "ss-server" > /dev/null 2>&1
if [ $? -eq 0 ]; then
/etc/init.d/shadowsocks stop
fi
chkconfig --del shadowsocks
# delete config file
rm -rf /etc/shadowsocks-libev
# delete shadowsocks
rm -fr /etc/shadowsocks-libev
rm -f /usr/local/bin/ss-local
rm -f /usr/local/bin/ss-tunnel
rm -f /usr/local/bin/ss-server
@ -351,7 +364,9 @@ uninstall_shadowsocks_libev(){
rm -f /etc/init.d/shadowsocks
echo "Shadowsocks-libev uninstall success!"
else
echo "uninstall cancelled, Nothing to do"
echo
echo "uninstall cancelled, nothing to do..."
echo
fi
}
@ -363,21 +378,21 @@ install_shadowsocks_libev(){
download_files
config_shadowsocks
firewall_set
install
install_shadowsocks
}
# Initialization step
action=$1
[ -z $1 ] && action=install
case "$action" in
install)
install)
install_shadowsocks_libev
;;
uninstall)
uninstall)
uninstall_shadowsocks_libev
;;
*)
echo "Arguments error! [${action} ]"
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` {install|uninstall}"
;;
esac