diff options
author | bapt <bapt@FreeBSD.org> | 2014-04-07 18:45:23 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2014-04-07 18:45:23 +0800 |
commit | 5cd7d5d1e3e0372079afb1aff43992a57fb351d5 (patch) | |
tree | 581896345686cfa7ed760e9581e033b5c27ef5fd /devel/fossil | |
parent | 21da41ad4a9ce59588ca11d060a7264d751c6ca0 (diff) | |
download | freebsd-ports-gnome-5cd7d5d1e3e0372079afb1aff43992a57fb351d5.tar.gz freebsd-ports-gnome-5cd7d5d1e3e0372079afb1aff43992a57fb351d5.tar.zst freebsd-ports-gnome-5cd7d5d1e3e0372079afb1aff43992a57fb351d5.zip |
Add a rc script to server fossil repositories
Diffstat (limited to 'devel/fossil')
-rw-r--r-- | devel/fossil/Makefile | 3 | ||||
-rw-r--r-- | devel/fossil/files/fossil.in | 90 |
2 files changed, 93 insertions, 0 deletions
diff --git a/devel/fossil/Makefile b/devel/fossil/Makefile index fa456d0f8722..8f869a4b7ea1 100644 --- a/devel/fossil/Makefile +++ b/devel/fossil/Makefile @@ -3,6 +3,7 @@ PORTNAME= fossil PORTVERSION= 1.28 DISTVERSION= 20140127173344 +PORTREVISION= 1 PORTEPOCH= 2 CATEGORIES= devel www MASTER_SITES= http://www.fossil-scm.org/download/ @@ -18,6 +19,8 @@ PLIST_FILES= bin/fossil HAS_CONFIGURE= yes CONFIGURE_ARGS= --prefix=${PREFIX} +USE_RC_SUBR= fossil + OPTIONS_DEFINE= JSON STATIC JSON_DESC= JSON API support diff --git a/devel/fossil/files/fossil.in b/devel/fossil/files/fossil.in new file mode 100644 index 000000000000..6244dfd3f230 --- /dev/null +++ b/devel/fossil/files/fossil.in @@ -0,0 +1,90 @@ +#!/bin/sh + +# $FreeBSD$ +# +# 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: +# fossil_port="8080" +# fossil_directory="/nonexistent" +# fossil_baseurl="" +# fossil_proto="http" +# fossil_listenall="" +# fossil_files="" # comma separated globing patterns of files to serve +# fossil_notfound="" # URI to redirect to in case of 404 +# Use fossil_user to run fossil as user + +. /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);; +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_files}" ] && fossil_args="${fossil_args} --files '${fossil_files}'" +[ -n "${fossil_notfound}" ] && fossil_args="${fossil_args} --notfound \"${fossil_notfound}\"" + +command_args="-f -p ${pidfile} ${procname} server -P ${fossil_port} ${fossil_args} ${fossil_directory}" + +fossil_setfib() +{ + if command -v check_namevarlist > /dev/null 2>&1; then + check_namevarlist fib && return 0 + fi + + ${SYSCTL} net.fibs >/dev/null 2>&1 || return 0 + + fossil_fib=${fossil_fib:-"NONE"} + case "$fossil_fib" in + [Nn][Oo][Nn][Ee]) + ;; + *) + command="setfib -F ${fossil_fib} ${command}" + ;; + esac +} + +fossil_precmd() +{ + fossil_setfib + install -d -o root -g wheel -m 1777 /var/run/fossil +} + +fossil_postcmd() +{ + rm -rf /var/run/fossil +} + +run_rc_command "$1" |