Index: head/www/fcgiwrap/Makefile =================================================================== --- head/www/fcgiwrap/Makefile (revision 289865) +++ head/www/fcgiwrap/Makefile (revision 289866) @@ -1,35 +1,36 @@ # New ports collection makefile for: fcgiwrap # Date created: 2010-06-15 # Whom: Bapt # # $FreeBSD$ # PORTNAME= fcgiwrap PORTVERSION= 1.0.3 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= www MASTER_SITES= http://cloud.github.com/downloads/gnosek/fcgiwrap/ MAINTAINER= bapt@FreeBSD.org COMMENT= Simple FastCGI wrapper for CGI scripts +LICENSE= MIT + LIB_DEPENDS= fcgi.0:${PORTSDIR}/www/fcgi WRKSRC= ${WRKDIR}/gnosek-fcgiwrap-2e301c8 -LICENSE= MIT USE_RC_SUBR= fcgiwrap USE_AUTOTOOLS= autoconf autoheader CFLAGS+= -I${LOCALBASE}/include -L${LOCALBASE}/lib GNU_CONFIGURE= yes MAN8= fcgiwrap.8 PLIST_FILES= sbin/fcgiwrap post-patch: @${REINPLACE_CMD} 's/@prefix@@mandir@/@mandir@/' ${WRKSRC}/Makefile.in .include Property changes on: head/www/fcgiwrap/Makefile ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.7 \ No newline at end of property +1.8 \ No newline at end of property Index: head/www/fcgiwrap/files/fcgiwrap.in =================================================================== --- head/www/fcgiwrap/files/fcgiwrap.in (revision 289865) +++ head/www/fcgiwrap/files/fcgiwrap.in (revision 289866) @@ -1,72 +1,119 @@ #!/bin/sh # $FreeBSD$ # # fcgiwrap startup script # # PROVIDE: fcgiwrap # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following to /etc/rc.conf[.local] to enable this service # # fcgiwrap_enable="YES" # # You can fine tune others variables too: # fcgiwrap_fib="NONE" # fcgiwrap_socket="unix:/var/run/fcgiwrap.sock" # this could also be: # - tcp:[ipv4_addr]:port (for ipv4) # - tcp6:[ipv6_addr]:port (for ipv6) # fcgiwrap_flags= # Use fcgiwrap_user to run fcgiwrap as user +# fcgiwrap rc.d script supports multiple profiles (a-la rc.d/nginx) +# When profiles are specified, the non-profile specific parameters become defaults. +# You need to make sure that no two profiles have the same socket parameter. +# +# Example: +# +# fcgiwrap_enable="YES" +# fcgiwrap_profiles="myserver myotherserver" +# fcgiwrap_flags="-c 4" +# fcgiwrap_myserver_socket="unix:/var/run/fcgiwrap.myserver.socket" +# fcgiwrap_myserver_user="myuser" +# fcgiwrap_myotherserver_socket="unix:/var/run/fcgiwrap.myotherserver.socket" +# fcgiwrap_myotherserver_user="myotheruser" +# fcgiwrap_myotherserver_flags="" # No flags for this profile. + . /etc/rc.subr name="fcgiwrap" rcvar=fcgiwrap_enable fcgiwrap_setfib() { sysctl net.fibs >/dev/null 2>&1 || return 0 case "$fcgiwrap_fib" in [Nn][Oo][Nn][Ee]) ;; *) command="setfib -F ${fcgiwrap_fib} ${command}" ;; esac } fcgiwrap_precmd() { fcgiwrap_setfib - install -d -o $fcgiwrap_user -m 755 /var/run/fcgiwrap + install -d -o root -g wheel -m 1777 /var/run/fcgiwrap } fcgiwrap_cleansocket() { # Workaround the fact that fcgiwrap doesn't cleanup his socket at stopping case ${fcgiwrap_socket} in unix*) test -S ${fcgiwrap_socket#unix:} && rm -f ${fcgiwrap_socket#unix:} ;; esac rm -f $pidfile } -pidfile="/var/run/fcgiwrap/fcgiwrap.pid" +pidprefix="/var/run/fcgiwrap/fcgiwrap" +pidfile="${pidprefix}.pid" # May be a different path if profiles are in use procname="%%PREFIX%%/sbin/${name}" command="/usr/sbin/daemon" start_precmd="fcgiwrap_precmd" stop_postcmd="fcgiwrap_cleansocket" load_rc_config $name +# These are just the defaults, they might get overriden for a specific profile. fcgiwrap_enable=${fcgiwrap_enable:-"NO"} fcgiwrap_fib=${fcgiwrap_fib:-"NONE"} fcgiwrap_user=${fcgiwrap_user:-"root"} fcgiwrap_socket=${fcgiwrap_socket:-"unix:/var/run/fcgiwrap/fcgiwrap.sock"} + +# This handles profile specific vars. +if [ -n "$2" ]; then + profile="$2" + if [ -n "${fcgiwrap_profiles}" ]; then + pidfile="${pidprefix}.${profile}.pid" + eval fcgiwrap_enable="\${fcgiwrap_${profile}_enable:-${fcgiwrap_enable}}" + eval fcgiwrap_fib="\${fcgiwrap_${profile}_fib:-${fcgiwrap_fib}}" + eval fcgiwrap_user="\${fcgiwrap_${profile}_user:-${fcgiwrap_user}}" + eval fcgiwrap_socket="\${fcgiwrap_${profile}_socket:?}" + eval fcgiwrap_flags="\${fcgiwrap_${profile}_flags:-${fciwrap_flags}}" + else + echo "$0: extra argument ignored" + fi +else + if [ -n "${fcgiwrap_profiles}" -a -n "$1" ]; then + for profile in ${fcgiwrap_profiles}; do + echo "===> fcgiwrap profile: ${profile}" + /usr/local/etc/rc.d/fcgiwrap $1 ${profile} + retcode="$?" + if [ "0${retcode}" -ne 0 ]; then + failed="${profile} (${retcode}) ${failed:-}" + else + success="${profile} ${success:-}" + fi + done + # It exits so that non-profile rc.d is not started when there are profiles. + exit 0 + fi +fi command_args="-f -p ${pidfile} ${procname} -s ${fcgiwrap_socket}" run_rc_command "$1" Property changes on: head/www/fcgiwrap/files/fcgiwrap.in ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.7 \ No newline at end of property +1.8 \ No newline at end of property