#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org

START=80

USE_PROCD=1

G_OPTS="daemon off;"

NGINX_UTIL="/usr/bin/nginx-util"

eval $("${NGINX_UTIL}" get_env)

CONF=""


nginx_init() {
	[ -z "${CONF}" ] || return # already called.

	[ -d /var/log/nginx ] || mkdir -p /var/log/nginx
	[ -d /var/lib/nginx ] || mkdir -p /var/lib/nginx

	rm -f "$(readlink "${UCI_CONF}")"
	${NGINX_UTIL} init_lan

	if [ -e "${UCI_CONF}" ]
	then CONF="${UCI_CONF}"
	else CONF="${NGINX_CONF}"
	fi

	local message
	message="$(/usr/sbin/nginx -t -c "${CONF}" -g "${G_OPTS}" 2>&1)" ||
	{
		echo -e "${message}" | logger -t "nginx_init" -p "daemon.err"
		logger -s -t "nginx_init" -p "daemon.err" "NOT using conf file!"
		echo "show config to be used by: nginx -T -c '${CONF}'" >&2
		exit 1
	}

	logger -t "nginx_init" -p "daemon.info" "using ${CONF} (the test is ok)"
}


start_service() {
	nginx_init

	procd_open_instance
	procd_set_param command /usr/sbin/nginx -c "${CONF}" -g "${G_OPTS}"
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_set_param file "${CONF}" "${CONF_DIR}*.crt" "${CONF_DIR}*.key" \
		"${CONF_DIR}*.conf" "${CONF_DIR}*.locations"
	procd_set_param respawn
	procd_close_instance
}


reload_service() {
	nginx_init

	if [ "$(cat "/proc/$(cat "/var/run/nginx.pid")/cmdline")" = \
	     "nginx: master process /usr/sbin/nginx -c ${CONF} -g ${G_OPTS}" ]
	then procd_send_signal nginx
	else restart
	fi
}


extra_command "relog" "Reopen log files (without reloading)"
relog() {
	[ -d /var/log/nginx ] || mkdir -p /var/log/nginx
	procd_send_signal nginx '*' USR1
}
