#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
Install_Memcached()
{
	public_file=/www/server/panel/install/public.sh
	if [ ! -f $public_file ];then
		wget -O $public_file http://download.bt.cn/install/public.sh -T 5;
	fi
	. $public_file

	download_Url=$NODE_URL
	
	
	srcPath='/root';
	if [ ! -f "/etc/init.d/memcached" ];then
		cd $srcPath
		apt-get -y remove memcached
		apt-get -y install libevent-dev
		wget $download_Url/src/memcached-1.4.7.tar.gz -T 5
		tar -xzf memcached-1.4.7.tar.gz
		cd memcached-1.4.7
		./configure --prefix=/usr/local/memcached
		make && make install
		ln -sf /usr/local/memcached/bin/memcached /usr/bin/memcached

		wget -O /etc/init.d/memcached $download_Url/init/init.d.memcached -T 5
		chmod +x /etc/init.d/memcached
		update-rc.d memcached defaults
		
		#ufw allow 11211/tcp
		#ufw allow 11211/udp
		#ufw reload


		cd $srcPath
		wget $download_Url/src/libmemcached-1.0.18.tar.gz -T 5
		tar -zxf libmemcached-1.0.18.tar.gz
		cd libmemcached-1.0.18
		./configure --prefix=/usr/local/libmemcached --with-memcached
		make && make install
		
		/etc/init.d/memcached start
		
		cd $srcPath
		rm -rf memcached*
		rm -rf libmemcached*
	fi
	
	if [ ! -f "/www/server/php/$version/bin/php-config" ];then
		echo "php-$vphp 未安装,请选择其它版本!"
		echo "php-$vphp not install, Plese select other version!"
		return
	fi
	
	isInstall=`cat /www/server/php/$version/etc/php.ini|grep 'memcached.so'`
	if [ "${isInstall}" != "" ];then
		echo "php-$vphp 已安装过memcached,请选择其它版本!"
		echo "php-$vphp not install, Plese select other version!"
		return
	fi
		
	case "${version}" in 
		'52')
		extFile='/www/server/php/52/lib/php/extensions/no-debug-non-zts-20060613/memcached.so'
		;;
		'53')
		extFile='/www/server/php/53/lib/php/extensions/no-debug-non-zts-20090626/memcached.so'
		;;
		'54')
		extFile='/www/server/php/54/lib/php/extensions/no-debug-non-zts-20100525/memcached.so'
		;;
		'55')
		extFile='/www/server/php/55/lib/php/extensions/no-debug-non-zts-20121212/memcached.so'
		;;
		'56')
		extFile='/www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/memcached.so'
		;;
		'70')
		extFile='/www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/memcached.so'
		;;
		'71')
		extFile='/www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/memcached.so'
		;;
		'72')
		extFile='/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/memcached.so'
		;;
	esac

	if [ ! -f "${extFile}" ];then
		cd $srcPath
		if [ "${version}" == "70" ]  || [ "${version}" == '71' ] || [ "${version}" == '72' ];then
			wget $download_Url/install/src/php-memcached-php7.zip -T 5
			unzip php-memcached-php7.zip
			cd php-memcached-php7
			
			/www/server/php/$version/bin/phpize
			./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-memcached --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
			make && make install
			cd $srcPath
			rm -f php-memcached-php7.zip
			rm -rf php-memcached-php7
		else
			wget $download_Url/src/memcached-2.2.0.tgz -T 5
			tar -zxf memcached-2.2.0.tgz
			cd memcached-2.2.0
			/www/server/php/$version/bin/phpize
			./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-memcached --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
			make && make install
			cd $srcPath
			rm -rf memcached*
		fi
	fi
	
	if [ ! -f "$extFile" ];then
		echo 'error';
		exit 0;
	fi
	
	echo "extension=memcached.so" >> /www/server/php/$version/etc/php.ini
	/etc/init.d/php-fpm-$version reload
	echo '==============================================='
	echo 'successful!'
}


Uninstall_Memcached()
{
	if [ ! -d /www/server/php/$version ];then
		/etc/init.d/memcached stop
		pkill -9 memcached
		update-rc.d -f memcached remove
		rm -f /etc/init.d/memcached
		rm -rf /usr/local/memcached
		return;
	fi
	if [ ! -f "/www/server/php/$version/bin/php-config" ];then
		echo "php-$vphp 未安装,请选择其它版本!"
		echo "php-$vphp not install, Plese select other version!"
		return
	fi
	
	isInstall=`cat /www/server/php/$version/etc/php.ini|grep 'memcached.so'`
	if [ "${isInstall}" = "" ];then
		echo "php-$vphp 未安装memcached,请选择其它版本!"
		echo "php-$vphp not install memcached, Plese select other version!"
		return
	fi
		
	sed -i '/memcached.so/d'  /www/server/php/$version/etc/php.ini
	/etc/init.d/php-fpm-$version reload
	echo '==============================================='
	echo 'successful!'
}

actionType=$1
version=$2
vphp=${version:0:1}.${version:1:1}
if [ "$actionType" == 'install' ];then
	Install_Memcached
elif [ "$actionType" == 'uninstall' ];then
	Uninstall_Memcached
fi
