#!/bin/sh

if [ "$#" -eq 1 ] && [[ "$1" == '--help' || "$1" == '-h' ]];then
    echo "Usage: $0 --help/-h  show this message"
    echo "       $0            auto find php-bin-dir"
    echo "       $0 /php/bin   specified php-bin-dir is /php/bin"
    exit
fi

USER=`whoami`

if [ $USER != 'root' ];then
    echo 'must use root exec this script'
    exit 1

fi

get_php_ini() {

for i in $@;
do
case $i in
    --with-config-file-path=*)
	value=`echo "$i" | sed -e 's/--with-config-file-path=//'`
    echo $value
	break;
    ;;
    --with-config-file-scan-dir=*)
	value=`echo "$i" | sed -e 's/--with-config-file-scan-dir=//'`
    echo "$value/php.ini"
	break;
    ;;
    *)
    ;;
esac

done
}


if [ "$#" -eq 1 ] && [ -d "$1" ] ;then
    if [ ! -e "$1/phpize" ];then
        echo "not found phpize in $1"
        exit
    fi
    PHPBIN_DIR=$1
elif [ -e '/opt/php/bin/phpize' ]; then
    PHPBIN_DIR='/opt/php/bin/'
else
    which --version &> /dev/null
    if [ $? -gt 0 ];then
        echo "command 'which' not found. please install"
        exit
    fi
    PHPIZE=`which phpize`
    if [ $? -eq 0 ];then
        PHPBIN_DIR=`dirname $PHPIZE`
    else
	    echo 'Not Found PHP bin dir'
	    exit
	fi
fi

echo "Found phpize in ${PHPBIN_DIR}phpize"
if [ -e "${PHPBIN_DIR}/php-config" ];then
    echo "Found php-config in ${PHPBIN_DIR}php-config"
else
    echo "Not Found php-config in ${PHPBIN_DIR}php-config"
fi

PHPCONFIG=`${PHPBIN_DIR}/php-config --configure-options`
PHPINI=`get_php_ini ${PHPCONFIG}`
if [ "$PHPINI" == "" ];then
PHPPRE=`${PHPBIN_DIR}/php-config --prefix`
PHPINI="${PHPPRE}/lib/php.ini"
fi

if [ ! -e "$PHPINI" ];then
	echo "Not Found php.ini"
else
	echo "Found php.ini in ${PHPINI}"
fi
PHPFPM=0
if [ -e "${PHPBIN_DIR}php-fpm" ] ; then
	echo "Found PHP-FPM in ${PHPBIN_DIR}php-fpm"
PHPFPM=1
else
	echo "Not Found PHP-FPM"
PHPFPM=0
fi
${PHPBIN_DIR}phpize

if [ $? -gt 0 ];then
exit $?
fi

./configure --with-php-config=${PHPBIN_DIR}php-config $1

if [ $? -gt 0 ];then
exit $?
fi
 
make 
 
if [ $? -gt 0 ];then
exit $?
fi

make install

if [ $? -gt 0 ];then
exit $?
fi

N=`ls ./modules`

if [ $? -gt 0 ];then
exit $?
fi

echo $PHPINI
MATCH_NUM=`cat ${PHPINI}|grep -c extension=${N}`
if [ $MATCH_NUM -eq 1 ];then
	echo 'Write extension='$N' to php.ini'
	echo 'extension='$N >>${PHPINI} 
else 
	echo "extension config exists"
fi

make clean && /opt/php/bin/phpize --clean
echo 'Checking php-fpm'
PHP_FPM_PROCESS=`ps aux |grep -c php-fpm`
if [ $PHP_FPM_PROCESS -eq 1 ];then
   echo 'php-fpm is not runing, exit'
   exit 0
fi
if [[ $PHP_FPM_PROCESS -gt 1 &&  $PHPFPM -eq 1 ]];then
	echo 'Restart php-fpm: '
	killall -s USR2 php-fpm
	if [ $? -gt 0 ];then
	   echo 'Failure'
	else
	   echo 'php-fpm restart success,exit'
	   exit 0
	fi
fi
