#!/bin/sh # fossil startup script # # PROVIDE: fossil # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following to /etc/rc.conf[.local] to enable this service # # fossil_enable="YES" # # You can fine tune others variables too: # # variable default description # ============================================= # fossil_port 8080 TCP port to listen to # fossil_directory /nonexistent directory to serve # fossil_repolist "" if non-empty, fossil will list the repositories in the fossil_directory when visiting / # fossil_baseurl "" the server URL, for reverse proxies # fossil_proto http spawn an http or scgi server # fossil_listenall "" if empty, only listen on 127.0.0.1 # fossil_https "" if non-empty, force the HTTPS CGI parameter to "on" # fossil_files "" if non-empty, comma separated glob patterns of files to serve # fossil_notfound "" if non-empty, URI to redirect to in case of 404 # fossil_errorlog "" if non-empty, path to log file for errors # fossil_user nobody user to run fossil as . /etc/rc.subr name="fossil" rcvar=fossil_enable load_rc_config $name pidprefix="/var/run/fossil/fossil" pidfile="${pidprefix}.pid" procname="%%PREFIX%%/bin/fossil" command="/usr/sbin/daemon" start_precmd="fossil_precmd" stop_postcmd="fossil_postcmd" fossil_enable=${fossil_enable:-"NO"} fossil_user=${fossil_user:-"nobody"} fossil_port=${fossil_port:-"8080"} fossil_proto=${fossil_proto:-"http"} fossil_directory=${fossil_directory:-"/nonexistent"} case "${fossil_proto}" in http) # http is the default ;; scgi) fossil_args="--scgi" ;; *) echo "unsupported protocol: ${fossil_proto}, only scgi and http are supported" >&2 exit 1 ;; esac [ -n "${fossil_baseurl}" ] && fossil_args="${fossil_args} --baseurl ${fossil_baseurl}" [ -z "${fossil_listenall}" ] && fossil_args="${fossil_args} --localhost" [ -n "${fossil_https}" ] && fossil_args="${fossil_args} --https" [ -n "${fossil_files}" ] && fossil_args="${fossil_args} --files '${fossil_files}'" [ -n "${fossil_notfound}" ] && fossil_args="${fossil_args} --notfound \"${fossil_notfound}\"" [ -n "${fossil_repolist}" ] && fossil_args="${fossil_args} --repolist" [ -n "${fossil_errorlog}" ] && fossil_args="${fossil_args} --errorlog \"${fossil_errorlog}\"" command_args="-S -T ${name} -p ${pidfile} ${procname} server -P ${fossil_port} ${fossil_args} ${fossil_directory}" fossil_precmd() { install -d -o root -g wheel -m 1777 /var/run/fossil } fossil_postcmd() { rm -rf /var/run/fossil } run_rc_command "$1"