#!/bin/sh

# PROVIDE: gitea
# REQUIRE: NETWORKING SYSLOG
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable gitea:
#
#gitea_enable="YES"

. /etc/rc.subr

name="gitea"
rcvar="gitea_enable"

load_rc_config $name

: ${gitea_user:="%%GITUSER%%"}
: ${gitea_enable:="NO"}
: ${gitea_configcheck_enable:="YES"}
: ${gitea_facility:="daemon"}
: ${gitea_priority:="info"}
: ${gitea_shared:="%%PREFIX%%/share/${name}"}
: ${gitea_custom:="%%PREFIX%%/etc/${name}"}

command="%%PREFIX%%/sbin/${name} web"
procname="%%PREFIX%%/sbin/${name}"
githome="$(eval echo ~${gitea_user})"

pidfile="/var/run/${name}.pid"

start_cmd="${name}_start"
start_precmd="${name}_prestart"

gitea_start() {
	for d in /var/db/gitea /var/log/gitea; do
		if [ ! -e "$d" ]; then
			mkdir "$d"
			chown ${gitea_user} "$d"
		fi
	done
	/usr/sbin/daemon %%DAEMONARGS%% \
		-u ${gitea_user} -p ${pidfile} \
		-l daemon -s warning \
		/usr/bin/env -i \
		"GITEA_WORK_DIR=${gitea_shared}" \
		"GITEA_CUSTOM=${gitea_custom}" \
		"HOME=${githome}" \
		"PATH=%%PREFIX%%/bin:${PATH}" \
		"USER=${gitea_user}" \
		$command
}

gitea_prestart() {
	if checkyesno gitea_configcheck_enable; then
		if su -m ${gitea_user} -c "%%PREFIX%%/sbin/${name} doctor check >/dev/null"; then
		else
			echo "cannot start ${name} because of configuration errors. Run" >&2
			echo "    su -m git -c '${name} doctor check'" >&2
			echo "for further details"
			return 1
		fi
	fi
}

run_rc_command "$1"
