#!/usr/bin/bash

#%copyright%

SOCKPATH="/var/mod_lsapi"

VERBOSE=NO

function getPHPtype(){
    cat /usr/local/apache/conf/php.conf.yaml | grep php5: | cut -d":" -f2 | tr -d ' '
}

function isSuexec(){
  TMP=`cat /usr/local/apache/conf/php.conf.yaml | grep suexec: | cut -d":" -f2 | tr -d ' '`
  if [ "$TMP" == "1" ]; then
    echo "yes"
  else
    echo "no"
  fi
    
}

function getEasyApacheVer(){
    cat /var/cpanel/easy/apache/profile/_main.yaml | grep version | cut -d":" -f2 | tr -d ' ' | tr -d "'"
}

function getUserConfigSuphp(){
    DOMAIN="$1"
    if [ -z "$DOMAIN" ]; then
	echo ""
    else
	UN=`/scripts/whoowns "$1" | tr -d '\n' | tr -d ' '`
	if [ -z "$UN" ]; then
	    echo ""
	else
	    HD=`/usr/share/lve/modlscapi/utils/getdocroot.pm "$UN" "$DOMAIN"`
	    if [ -n "$HD" ]; then
		if [ ! -e "$HD/.htaccess" ]; then
		    touch "$HD/.htaccess"
		    chown "$UN":"$UN" "$HD/.htaccess"
		fi
		echo "$HD/.htaccess"
	    else
		echo "$HD/.htaccess"
	    fi
	fi
    fi
}

function getUserConfigFcgidExtra(){
    APPVER=`getEasyApacheVer`
    DOMAIN="$1"
    OLDSTYLE="$2"
    if [ -z "$DOMAIN" ]; then
	echo ""
    else
	UN=`/scripts/whoowns "$1" | tr -d '\n' | tr -d ' '`
	if [ -z "$UN" ]; then
	    echo ""
	else
	    if [ -z "$OLDSTYLE" ]; then
	        echo "/usr/local/apache/conf/userdata/std/$APPVER/$UN/$DOMAIN"
	    else
	        echo "/usr/local/apache/conf/userdata/std/2/$UN/$DOMAIN"
	    fi
	fi
    fi
}

function getUserConfigFcgidExtra_SSL(){
    APPVER=`getEasyApacheVer`
    DOMAIN="$1"
    OLDSTYLE="$2"
    if [ -z "$DOMAIN" ]; then
	echo ""
    else
	UN=`/scripts/whoowns "$1" | tr -d '\n' | tr -d ' '`
	if [ -z "$UN" ]; then
	    echo ""
	else
	    if [ -z "$OLDSTYLE" ]; then
	        echo "/usr/local/apache/conf/userdata/ssl/$APPVER/$UN/$DOMAIN"
	    else
	        echo "/usr/local/apache/conf/userdata/ssl/2/$UN/$DOMAIN"
	    fi
	fi
    fi
}

function getUserByDomain(){
    APPVER=`getEasyApacheVer`
    DOMAIN="$1"
    if [ -z "$DOMAIN" ]; then
	echo ""
    else
	UN=`/scripts/whoowns "$1" | tr -d '\n' | tr -d ' '`
	if [ -z "$UN" ]; then
	    echo ""
	else
	    echo "$UN"
	fi
    fi
}


function getUserConfigFcgid(){
    DOMAIN="$1"
    if [ -z "$DOMAIN" ]; then
	echo ""
    else
	UN=`/scripts/whoowns "$1" | tr -d '\n' | tr -d ' '`
	if [ -z "$UN" ]; then
	    echo ""
	else
	    echo "/var/cpanel/userdata/$UN/$DOMAIN"
	fi
    fi
}

function getUserConfigFcgid_SSL(){
    DOMAIN="$1"
    if [ -z "$DOMAIN" ]; then
	echo ""
    else
	UN=`/scripts/whoowns "$1" | tr -d '\n' | tr -d ' '`
	if [ -z "$UN" ]; then
	    echo ""
	else
	    echo "/var/cpanel/userdata/$UN/$DOMAIN""_SSL"
	fi
    fi
}

function normalizeconfig(){
    if [ -e /usr/local/apache/conf/conf.d/lsapi.conf ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Normalizing lsapi config..."
	cat /usr/local/apache/conf/conf.d/lsapi.conf | tr -s '#' > /usr/local/apache/conf/conf.d/lsapi.conf.tmp1
	mv -f /usr/local/apache/conf/conf.d/lsapi.conf.tmp1 /usr/local/apache/conf/conf.d/lsapi.conf
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi
}

function checkForAddHandlerPresense(){
    if [ -e /usr/local/apache/conf/conf.d/lsapi.conf ]; then
        [ "$VERBOSE" = "YES" ] && echo -n "Check for AddHandler presense..."
        grep -q "AddHandler" /usr/local/apache/conf/conf.d/lsapi.conf || echo '# AddHandler application/x-httpd-lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .phtml' >> /usr/local/apache/conf/conf.d/lsapi.conf
        [ "$VERBOSE" = "YES" ] && echo " done"

        [ "$VERBOSE" = "YES" ] && echo -n "Check for AddType presense..."
        grep -q "AddType" /usr/local/apache/conf/conf.d/lsapi.conf || echo '# AddType application/x-httpd-lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .phtml' >> /usr/local/apache/conf/conf.d/lsapi.conf
        [ "$VERBOSE" = "YES" ] && echo " done"
    fi
}


function enable_lsapi_for_CL(){
  if [ -e /usr/local/apache/conf/conf.d ]; then
    [ "$VERBOSE" = "YES" ] && echo -n "Creating mod_lsapi config file..."
    cat /usr/local/apache/conf/conf.d/lsapi.conf | sed 's/#LoadModule/LoadModule/g' > /usr/local/apache/conf/conf.d/lsapi.conf.tmp
	  cp -f /usr/local/apache/conf/conf.d/lsapi.conf.tmp /usr/local/apache/conf/conf.d/lsapi.conf
	  [ "$VERBOSE" = "YES" ] && echo " done"
  fi

  if [ -e /usr/local/apache/conf/conf.d ]; then
    [ "$VERBOSE" = "YES" ] && echo -n "Setting mod_lsapi up..."
    cat /usr/local/apache/conf/conf.d/lsapi.conf | \
    sed 's/^AddHandler application\/x-httpd-lsphp \.php/#AddHandler application\/x-httpd-lsphp \.php/g' | \
    sed 's/^AddType application\/x-httpd-lsphp \.php/#AddType application\/x-httpd-lsphp \.php/g' > /usr/local/apache/conf/conf.d/lsapi.conf.tmp
    cp -f /usr/local/apache/conf/conf.d/lsapi.conf.tmp /usr/local/apache/conf/conf.d/lsapi.conf
    [ "$VERBOSE" = "YES" ] && echo " done"
  fi
}


function enable_lsapi_for_Ubuntu(){
  a2enmod lsapi
  systemctl restart apache2
}


function is_ubuntu() {
    grep -q 'ubuntu' '/etc/os-release'
    return $?
}


if [ "$1" == "--verbose" ]; then
    VERBOSE=YES
    echo "Switching verbose level on... done"
    shift
fi

if [ "$1" == "--force" ]; then
    shift
fi

CMD="$1"

if [ "$CMD" == "--uninstall" ]; then
    [ "$VERBOSE" = "YES" ] && echo "mod_lsapi uninstall started"

    normalizeconfig

    if [ -e "/var/cpanel/conf/apache/main.bak" ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/conf/apache/main..."
	mv -f /var/cpanel/conf/apache/main.bak /var/cpanel/conf/apache/main
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /usr/local/apache/conf/conf.d ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Disabling LoadModule directive..."
	cat /usr/local/apache/conf/conf.d/lsapi.conf | sed 's/LoadModule/#LoadModule/g' > /usr/local/apache/conf/conf.d/lsapi.conf.tmp
	cp -f /usr/local/apache/conf/conf.d/lsapi.conf.tmp /usr/local/apache/conf/conf.d/lsapi.conf
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e "/etc/logrotate.d/sulsphp_log" ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Removing logrotate config..."
	rm -f "/etc/logrotate.d/sulsphp_log"
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_4/vhost.default.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_4/vhost.default..."
	mv -f /var/cpanel/templates/apache2_4/vhost.default.bak /var/cpanel/templates/apache2_4/vhost.default
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_4/ssl_vhost.default.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_4/ssl_vhost.default..."
	mv -f /var/cpanel/templates/apache2_4/ssl_vhost.default.bak /var/cpanel/templates/apache2_4/ssl_vhost.default
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_2/vhost.default.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_2/vhost.default..."
	mv -f /var/cpanel/templates/apache2_2/vhost.default.bak /var/cpanel/templates/apache2_2/vhost.default
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_2/ssl_vhost.default.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_2/ssl_vhost.default..."
	mv -f /var/cpanel/templates/apache2_2/ssl_vhost.default.bak /var/cpanel/templates/apache2_2/ssl_vhost.default
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_4/vhost.local.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_4/vhost.local..."
	mv -f /var/cpanel/templates/apache2_4/vhost.local.bak /var/cpanel/templates/apache2_4/vhost.local
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_4/ssl_vhost.local.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_4/ssl_vhost.local..."
	mv -f /var/cpanel/templates/apache2_4/ssl_vhost.local.bak /var/cpanel/templates/apache2_4/ssl_vhost.local
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_2/vhost.local.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_2/vhost.local..."
	mv -f /var/cpanel/templates/apache2_2/vhost.local.bak /var/cpanel/templates/apache2_2/vhost.local
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ -e /var/cpanel/templates/apache2_2/ssl_vhost.local.bak ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Restoring /var/cpanel/templates/apache2_2/ssl_vhost.local..."
	mv -f /var/cpanel/templates/apache2_2/ssl_vhost.local.bak /var/cpanel/templates/apache2_2/ssl_vhost.local
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    #Disable all domains if exists for suphp
    /usr/share/lve/modlscapi/utils/getdocroots.pm | while read line;
    do
    if [ -e "$line/.htaccess" ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Disabling mod_lsapi in $line for suphp..."
	sed -i '/x-httpd-lsphp/d' "$line/.htaccess"
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi
    done

    #Disable all domains if exists for fcgid
    /usr/share/lve/modlscapi/utils/getuserdomains.pm | while read line;
    do
	U=`echo $line | cut -d' ' -f1`
	D=`echo $line | cut -d' ' -f2`
	if [ -e "/var/cpanel/userdata/$U/$D" ]; then
	    [ "$VERBOSE" = "YES" ] && echo -n "Disabling mod_lsapi in $U:$D for fcgid..."
	    sed -i '/modlsapi/d' "/var/cpanel/userdata/$U/$D"
	    [ "$VERBOSE" = "YES" ] && echo " done"
	fi
    done

    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config..."
    /scripts/rebuildhttpdconf
    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config done"
    echo "Reconfiguration completed"
    exit
fi

PHP=`getPHPtype`

if [ "$CMD" == "--setup" ]; then

  SUE=`isSuexec`
  if [ "$SUE" == "no" ]; then
    echo "SUEXEC mechanism should be enabled"
    exit 255
  fi

    [ "$VERBOSE" = "YES" ] && echo "mod_lsapi setup started"

    normalizeconfig

    if [ ! -e "/var/cpanel/conf/apache/main.bak" ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Backing /var/cpanel/conf/apache/main up..."
	cp /var/cpanel/conf/apache/main /var/cpanel/conf/apache/main.bak
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi
    
    [ "$VERBOSE" = "YES" ] && echo -n "Removing mod_ruid2 settings..."
    cat /var/cpanel/conf/apache/main | sed -n '/mod_ruid2\.so/{N;s/.*//;x;d;};x;p;${x;p;}' | sed '/^$/d' > /var/cpanel/conf/apache/main.tmp
    cat /var/cpanel/conf/apache/main.tmp | sed -n '/mod_ruid2\.conf/{s/.*//;x;d;};x;p;${x;p;}' | sed '/^$/d' > /var/cpanel/conf/apache/main
    rm -f /var/cpanel/conf/apache/main.tmp
    [ "$VERBOSE" = "YES" ] && echo " done"

    if is_ubuntu; then
      enable_lsapi_for_Ubuntu
    else
      enable_lsapi_for_CL
    fi


    if [ -e "/usr/share/lve/modlscapi/confs/sulsphp_log.EA3" -a ! -e "/etc/logrotate.d/sulsphp_log" ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Installing logrotate config..."
	cp -f "/usr/share/lve/modlscapi/confs/sulsphp_log.EA3" "/etc/logrotate.d/sulsphp_log"
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    if [ "$PHP" == "suphp" ]; then
	echo "SUPHP deteceted"	
    fi
    
    if [ "$PHP" == "fcgi" ]; then
	echo "FCGID deteceted"
    fi

    VER=`getEasyApacheVer`

    [ "$VERBOSE" = "YES" ] && echo "Checking conf.d..."
    /usr/share/lve/modlscapi/utils/checkconfdutil.pm
    [ "$VERBOSE" = "YES" ] && echo "Checking conf.d done"

    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config..."
    /scripts/rebuildhttpdconf
    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config done"

    if [ ! -e /usr/local/bin/lsphp ]; then
        [ "$VERBOSE" = "YES" ] && echo "Setting up cl-selector for lsphp..."
	cp /opt/alt/php56/usr/bin/lsphp /usr/local/bin/
	ln -s /usr/local/bin/lsphp /etc/cl.selector/lsphp
	if [ -e /usr/sbin/cagefsctl ]; then
		cagefsctl --update-etc
	fi
        RES=""
	if [ -e /etc/cl.selector/native.conf ]; then
		RES=`cat /etc/cl.selector/native.conf | grep lsphp=/usr/local/bin/lsphp `
	fi
	if [ -z "$RES" ]; then
	    echo "lsphp=/usr/local/bin/lsphp" >> /etc/cl.selector/native.conf
	fi
	if [ -e /usr/sbin/cagefsctl ]; then
		cagefsctl --setup-cl-selector
	fi
        [ "$VERBOSE" = "YES" ] && echo "Setting up cl-selector for lsphp done"
    fi
    
    
    CSF_CONFIG="/etc/csf/csf.pignore"
    CSF_MAIN_RULE="exe:/usr/local/bin/lsphp"
    CSF_ALT_RULE="pexe:/opt/alt/php.*/usr/bin/lsphp"
    CSF_SELECTOR_RULE="exe:/usr/selector/lsphp"
    CSF_EA_RULE="pexe:/opt/cpanel/ea-php*/root/usr/bin/lsphp"

    if [ -f "${CSF_CONFIG}" ]; then
        [ "$VERBOSE" = "YES" ] && echo "Setting up lfd service for lsphp..."
	[ -e "${CSF_CONFIG}.bkp" ] || cp "${CSF_CONFIG}" "${CSF_CONFIG}.bkp"
	grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_MAIN_RULE}" || echo "${CSF_MAIN_RULE}" >> "$CSF_CONFIG"
	grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_SELECTOR_RULE}" || echo "${CSF_SELECTOR_RULE}" >> "$CSF_CONFIG"
	grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_EA_RULE}" || echo "${CSF_EA_RULE}" >> "$CSF_CONFIG"
	grep -v '^[[:space:]]*#' "${CSF_CONFIG}" | grep -Fq "${CSF_ALT_RULE}" || echo "${CSF_ALT_RULE}" >> "$CSF_CONFIG"
	service lfd restart 2>/dev/null >/dev/null
        [ "$VERBOSE" = "YES" ] && echo "Setting up lfd service for lsphp done"
    fi

    echo "Reconfiguration completed"
    exit
fi



if [ "$CMD" == "--enable-domain" ]; then
    if [ -z "$2" ]; then
	echo "$0 --enable-domain [DOMAIN] - should have domain specified"
	exit 255
    fi

    [ "$VERBOSE" = "YES" ] && echo "mod_lsapi will be enabled for $2 domain"

    if [ "$PHP" == "fcgi" ]; then
        [ "$VERBOSE" = "YES" ] && echo "It will be used instead of fcgi"
	PA=`getUserConfigFcgidExtra "$2"`
	if [ -n "$PA" ]; then
	    if [ -e "$PA" -a ! -e "$PA/lsapi_modfcgid.conf" ]; then
	       cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA/lsapi_modfcgid.conf"
	    else
	        mkdir -p "$PA"
	        cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA/lsapi_modfcgid.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	PA_OLD=`getUserConfigFcgidExtra "$2" "OLD_STYLE"`
	if [ -n "$PA_OLD" ]; then
	    if [ -e "$PA_OLD" -a ! -e "$PA_OLD/lsapi_modfcgid.conf" ]; then
	       cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA_OLD/lsapi_modfcgid.conf"
	    else
	        mkdir -p "$PA_OLD"
	        cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA_OLD/lsapi_modfcgid.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	PA_SSL=`getUserConfigFcgidExtra_SSL "$2"`
	if [ -n "$PA_SSL" ]; then
	    if [ -e "$PA_SSL" -a ! -e "$PA_SSL/lsapi_modfcgid_ssl.conf" ]; then
	        cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA_SSL/lsapi_modfcgid_ssl.conf"
	    else
	        mkdir -p "$PA_SSL"
	        cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA_SSL/lsapi_modfcgid_ssl.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	PA_SSL_OLD=`getUserConfigFcgidExtra_SSL "$2" "OLD_STYLE"`
	if [ -n "$PA_SSL_OLD" ]; then
	    if [ -e "$PA_SSL_OLD" -a ! -e "$PA_SSL_OLD/lsapi_modfcgid_ssl.conf" ]; then
	        cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA_SSL_OLD/lsapi_modfcgid_ssl.conf"
	    else
	        mkdir -p "$PA_SSL_OLD"
	        cp /usr/share/lve/modlscapi/tars/lsapi_modfcgid.conf "$PA_SSL_OLD/lsapi_modfcgid_ssl.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	
	UN=`getUserByDomain "$2"`
	if [ -n "$UN" ]; then
	   /scripts/ensure_vhost_includes --user="$UN"
	fi
    fi
    if [ "$PHP" == "suphp" ]; then
        [ "$VERBOSE" = "YES" ] && echo "It will be used instead of suphp"
	PA=`getUserConfigSuphp "$2"`
	if [ -n "$PA" ]; then
	    if [ -e "$PA" ]; then
		IS=`cat "$PA" | grep "x-httpd-lsphp"`
		if [ -z "$IS" ]; then
                    [ "$VERBOSE" = "YES" ] && echo -n "Modifying $PA..."
		    echo "" >> "$PA"
		    echo "#mod_lsapi suphp domain handled by lsphp" >> "$PA"
                    echo "AddType application/x-httpd-lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .phtml"  >> "$PA"
                    echo "AddHandler application/x-httpd-lsphp .php .php4 .php5 .php53 .php54 .php55 .php56 .php6 .phtml"  >> "$PA"
                    [ "$VERBOSE" = "YES" ] && echo " done"
		fi
	    else
		echo "Can't create $PA"
		exit 255
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
    fi
    exit
fi

if [ "$CMD" == "--disable-domain" ]; then
    if [ -z "$2" ]; then
	echo "$0 --disable-domain [DOMAIN] - should have domain specified"
	exit 255
    fi

    [ "$VERBOSE" = "YES" ] && echo "mod_lsapi will be disabled for $2 domain"

    if [ "$PHP" == "fcgi" ]; then
        [ "$VERBOSE" = "YES" ] && echo "fcgi will be used instead"
	PA=`getUserConfigFcgidExtra "$2"`
	if [ -n "$PA" ]; then
	    if [ -e "$PA/lsapi_modfcgid.conf" ]; then
	         truncate -s 0 "$PA/lsapi_modfcgid.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	PA_OLD=`getUserConfigFcgidExtra "$2" "OLD_STYLE"`
	if [ -n "$PA_OLD" ]; then
	    if [ -e "$PA_OLD/lsapi_modfcgid.conf" ]; then
	         truncate -s 0 "$PA_OLD/lsapi_modfcgid.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	PA_SSL=`getUserConfigFcgidExtra_SSL "$2"`
	if [ -n "$PA_SSL" ]; then
	    if [ -e "$PA_SSL/lsapi_modfcgid_ssl.conf" ]; then
	        truncate -s 0 "$PA_SSL/lsapi_modfcgid_ssl.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
	PA_OLD_SSL=`getUserConfigFcgidExtra_SSL "$2" "OLD_STYLE"`
	if [ -n "$PA_OLD_SSL" ]; then
	    if [ -e "$PA_OLD_SSL/lsapi_modfcgid_ssl.conf" ]; then
	        truncate -s 0 "$PA_OLD_SSL/lsapi_modfcgid_ssl.conf"
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
    fi
    if [ "$PHP" == "suphp" ]; then
        [ "$VERBOSE" = "YES" ] && echo "suphp will be used instead"
	PA=`getUserConfigSuphp "$2"`
	if [ -n "$PA" ]; then
	    if [ -e "$PA" ]; then
		IS=`cat "$PA" | grep "lsphp"`
		if [ -n "$IS" ]; then
                    [ "$VERBOSE" = "YES" ] && echo -n "Modifying $PA..."
		    sed -i '/x-httpd-lsphp/d' "$PA"
                    [ "$VERBOSE" = "YES" ] && echo " done"
		fi
	    else
		echo "Can't create $PA"
		exit 255
	    fi
	else
	    echo "Domain $2 not found"
	    exit 255
	fi
    fi
    exit
fi

if [ "$CMD" == "--enable-global" ]; then
    [ "$VERBOSE" = "YES" ] && echo "mod_lsapi will be enabled globally"

    normalizeconfig

    if [ -e /usr/local/apache/conf/conf.d ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Setting up lsapi.conf..."
        cat /usr/local/apache/conf/conf.d/lsapi.conf | \
           sed 's/#AddType application\/x-httpd-lsphp/AddType application\/x-httpd-lsphp/g' | \
              sed 's/#AddHandler application\/x-httpd-lsphp/AddHandler application\/x-httpd-lsphp/g' > /usr/local/apache/conf/conf.d/lsapi.conf.tmp
        cp -f /usr/local/apache/conf/conf.d/lsapi.conf.tmp /usr/local/apache/conf/conf.d/lsapi.conf
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config..."
    /scripts/rebuildhttpdconf
    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config done"

    exit

fi

if [ "$CMD" == "--disable-global" ]; then
    [ "$VERBOSE" = "YES" ] && echo "mod_lsapi will be disabled globally"

    normalizeconfig

    if [ -e /usr/local/apache/conf/conf.d ]; then
	[ "$VERBOSE" = "YES" ] && echo -n "Setting up lsapi.conf..."
        cat /usr/local/apache/conf/conf.d/lsapi.conf | \
           sed 's/^AddType application\/x-httpd-lsphp/#AddType application\/x-httpd-lsphp/g' | \
              sed 's/^AddHandler application\/x-httpd-lsphp/#AddHandler application\/x-httpd-lsphp/g' > /usr/local/apache/conf/conf.d/lsapi.conf.tmp
        cp -f /usr/local/apache/conf/conf.d/lsapi.conf.tmp /usr/local/apache/conf/conf.d/lsapi.conf
	[ "$VERBOSE" = "YES" ] && echo " done"
    fi

    [ "$VERBOSE" = "YES" ] && echo "Modifying php config..."
    /usr/share/lve/modlscapi/utils/inserphpconf.pm
    [ "$VERBOSE" = "YES" ] && echo "Modifying php config done"

    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config..."
    /scripts/rebuildhttpdconf
    [ "$VERBOSE" = "YES" ] && echo "Rebuilding httpd config done"

    exit
fi

if [ "$CMD" == "--build-native-lsphp" ]; then
    if [ ! -e "/usr/local/cpanel/whostmgr/docroot/cgi/lsws" ]; then
	mkdir -p /usr/local/cpanel/whostmgr/docroot/cgi/lsws
    fi
    cp -f /usr/share/lve/modlscapi/buildlsphp/cmd_buildmatchingphp.php /usr/local/cpanel/whostmgr/docroot/cgi/lsws/
    cp -f /usr/share/lve/modlscapi/buildlsphp/php_build.template /usr/local/cpanel/whostmgr/docroot/cgi/lsws/
    cp -f /usr/share/lve/modlscapi/buildlsphp/php.ini /usr/local/cpanel/whostmgr/docroot/cgi/lsws/
    cp -f /usr/share/lve/modlscapi/buildlsphp/WhmMod_LiteSpeed_BuildPHP.php /usr/local/cpanel/whostmgr/docroot/cgi/lsws/
    cd /usr/local/cpanel/whostmgr/docroot/cgi/lsws/
    if [ -n "$2" ]; then
     if [ "$2" == "" ]; then
       /usr/local/bin/php -c /usr/local/cpanel/whostmgr/docroot/cgi/lsws/php.ini /usr/local/cpanel/whostmgr/docroot/cgi/lsws/cmd_buildmatchingphp.php
     else
       /usr/local/bin/php -c /usr/local/cpanel/whostmgr/docroot/cgi/lsws/php.ini /usr/local/cpanel/whostmgr/docroot/cgi/lsws/cmd_buildmatchingphp.php "$2"
     fi
    else
	if [ -d "/usr/home/" ]; then
	    /usr/local/bin/php -c /usr/local/cpanel/whostmgr/docroot/cgi/lsws/php.ini /usr/local/cpanel/whostmgr/docroot/cgi/lsws/cmd_buildmatchingphp.php "/usr"
	elif [ -d "/home/" ]; then
	    /usr/local/bin/php -c /usr/local/cpanel/whostmgr/docroot/cgi/lsws/php.ini /usr/local/cpanel/whostmgr/docroot/cgi/lsws/cmd_buildmatchingphp.php
	else
	    /usr/local/bin/php -c /usr/local/cpanel/whostmgr/docroot/cgi/lsws/php.ini /usr/local/cpanel/whostmgr/docroot/cgi/lsws/cmd_buildmatchingphp.php "/var/cpanel"
	fi
    fi
    cd -
    if [ -e /usr/sbin/cagefsctl -a -e /usr/local/bin/lsphp ]; then
	CVER=`/usr/sbin/cagefsctl -V | cut -d- -f1`
	RVER1=`/usr/sbin/cagefsctl -V | cut -d- -f2 | cut -d'.' -f1`
	RVER2=`/usr/sbin/cagefsctl -V | cut -d- -f2 | cut -d'.' -f2`
	RES=`python -c "import sys,rpm; print rpm.labelCompare((None, '$CVER', '$RVER1.$RVER2'), (None, '5.5', '6.4'));"`
	if [ "$RES"=="0" -o "$RES"=="1" ]; then
	    echo "/usr/local/bin/lsphp" | /usr/sbin/cagefsctl --update-list
	else
	    /usr/sbin/cagefsctl --force-update
	fi
    fi

    exit
fi


echo "$0 [OPTION]"
echo "utility for switching mod_lsapi on cPanel on or off (without mod_ruid2):"
echo "--setup - setup mod_lsapi configurations for Apache"
echo "--uninstall - uninstall mod_lsapi from Apache"
echo "--enable-domain - enable mod_lsapi for an individual domain"
echo "--disable-domain - disable mod_lsapi for an individual domain"
echo "--enable-global - sets up mod_lsapi as a default way to serve PHP, making it enabled for all domains. Once that mode is enabled, you cannot disable mod_lsapi for individual domains"
echo "--disable-global - disable mod_lsapi as a default way to serve PHP, disabling mod_lsapi for all domains, including those selected previously using --enable-domain"
echo "--build-native-lsphp - build native lsphp for cPanel"
echo "--verbose - switch verbose logging on"
echo "--force - only with setup option (EA4)"
echo "--help - show this help message"
