#!/bin/sh  

NGINX_CONFIG=/etc/nginx/nginx.conf

get_worker_connections(){
	workers=`awk -F' |;' '/worker_connections/ {print $2}' $NGINX_CONFIG`
	if [ -z "$workers" ];then
		workers=512
	fi
	echo $workers
}

set_worker_connections(){
    workers=$1
    if [ -z "$workers" -o $workers -lt 10 ]; then
        echo 1
        return 1
    fi
    sed -i "/worker_connections/cworker_connections ${workers};" "$NGINX_CONFIG"
    if [ $? -ne 0 ];then
        echo 1
        return 1
    else
        echo 0
        return 0
    fi
}

get_http_port(){
    port=$(sed -n '/\#\s*HTTP\s*server\b/,/\#\s*HTTP\s*server\b/{/[^#][ |  |   |    |\t]*\blisten\b/p}' "$NGINX_CONFIG" |awk '{print $2}' |awk -F";" '{print $1}')
    if [ -z "$port" ];then
        port=80
    fi
    echo $port
}

set_http_port(){
    port="$1"
    if [ -z "$port" ];then
        echo 1
        return 1
    fi	
    sed -i '/\#\s*HTTP\s*server\b/,/\#\s*HTTP\s*server\b/s/[^#][ |  |   |    |\t]*\blisten\b.*/\tlisten\t'$port';/' "$NGINX_CONFIG"
    if [ $? -ne 0 ];then
        echo 1
        return 1
    else
        echo 0
        return 0
    fi
}

get_https_status(){
	sslstatus=$(sed -n '/\#\s*HTTPS\s*server\b/,/\#\s*HTTPS\s*server\b/{/[^#][ |  |   |    |\t]*\bssl\b/p}' "$NGINX_CONFIG" |awk '{print $2}' |awk -F";" '{print $1}')
	if [ -z "$sslstatus" ];then
		sslstatus="off"
	fi
	echo $sslstatus
}

set_https_status(){
	sslstatus="$1"
	if [ -z "$sslstatus" ];then
		echo 1
		return 1
	fi
	if [ "$sslstatus" != "on" ];then
		sslstatus="off"
	fi
	sed -i '/\#\s*HTTPS\s*server\b/,/\#\s*HTTPS\s*server\b/s/[^#][ |  |   |    |\t]*\bssl\b.*/\tssl\t'$sslstatus';/' "$NGINX_CONFIG"
	if [ $? -ne 0 ];then
		echo 1
		return 1
	else
		echo 0
		return 0
	fi
}

get_https_port(){
    port=$(sed -n '/\#\s*HTTPS\s*server\b/,/\#\s*HTTPS\s*server\b/{/[^#][ |  |   |    |\t]*\blisten\b/p}' "$NGINX_CONFIG" |awk '{print $2}' |awk -F";" '{print $1}')
    if [ -z "$port" ];then
        port=443
    fi
    echo $port
}

set_https_port(){
    port="$1"
    if [ -z "$port" ];then
        echo 1
        return 1
    fi
    sed -i '/\#\s*HTTPS\s*server\b/,/\#\s*HTTPS\s*server\b/s/[^#][ |  |   |    |\t]*\blisten\b.*/\tlisten\t'$port';/' "$NGINX_CONFIG"
    if [ $? -ne 0 ]; then
        echo 1
        return 1
    else
        echo 0
        return 0
    fi
}

get_servername(){
    servername=$(awk -F "[\']+" "/more_set_headers.*Server:/ {print \$2}" /etc/nginx/nginx-http.conf)
    servername=${servername#*:}
    if [ -z "$servername" -o "$servername" = 'TOS/$nginx_version' ];then
        servername=`hostname`
    fi
    echo $servername
}

set_servername(){
    servername="$1"
    if [ -z "$servername" ];then
        echo 1
        return 1
    fi
    
    sed -i "/^more_set_headers.*Server:/cmore_set_headers 'Server:$servername';" /etc/nginx/nginx-http.conf
    if [ $? -ne 0 ];then
        echo 1
        return 1
    else
        echo 0
        return 0
    fi
}
