diff options
Diffstat (limited to '')
-rw-r--r-- | www/py-gunicorn/Makefile | 2 | ||||
-rw-r--r-- | www/py-gunicorn/files/gunicorn.in | 40 |
2 files changed, 39 insertions, 3 deletions
diff --git a/www/py-gunicorn/Makefile b/www/py-gunicorn/Makefile index 29a2828b1fe3..a94bea8c475d 100644 --- a/www/py-gunicorn/Makefile +++ b/www/py-gunicorn/Makefile @@ -1,6 +1,6 @@ PORTNAME= gunicorn DISTVERSION= 23.0.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= www python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/www/py-gunicorn/files/gunicorn.in b/www/py-gunicorn/files/gunicorn.in index cb2c8dabaa8e..9ccf3fbc59f5 100644 --- a/www/py-gunicorn/files/gunicorn.in +++ b/www/py-gunicorn/files/gunicorn.in @@ -14,6 +14,9 @@ # gunicorn_user (str): User to run gunicorn as. # # gunicorn_group (str): Group to run gunicorn as. +# +# gunicorn_profiles (str): Set to "" by default. +# Define your profiles here. . /etc/rc.subr @@ -29,13 +32,46 @@ load_rc_config $name : ${gunicorn_user:=%%USERS%%} : ${gunicorn_group:=%%GROUPS%%} -pidfile="/var/run/${name}.pid" -cpidfile="/var/run/${name}-worker.pid" +_pidprefix="/var/run/gunicorn" +pidfile="${_pidprefix}/${name}.pid" +cpidfile="${_pidprefix}/${name}-worker.pid" command=/usr/sbin/daemon command_args="-P ${pidfile} -p ${cpidfile} -f -ST ${name} %%PREFIX%%/bin/gunicorn -c ${gunicorn_config}" required_files="${gunicorn_config}" start_precmd="gunicorn_precmd" +if [ -n "$2" ]; then + profile="$2" + if [ "x${gunicorn_profiles}" != "x" ]; then + pidfile="${_pidprefix}/gunicorn-${profile}.pid" + cpidfile="${_pidprefix}/gunicorn-${profile}-worker.pid" + eval gunicorn_config="\${gunicorn_${profile}_config:-}" + if [ "x${gunicorn_config}" = "x" ]; then + echo "You must define a configuration file (gunicorn_${profile}_config)" + exit 1 + fi + required_files="${gunicorn_config}" + command_args="-P ${pidfile} -p ${cpidfile} -f -ST ${name} /usr/local/bin/gunicorn -c ${gunicorn_config}" + eval gunicorn_enable="\${gunicorn_${profile}_enable:-${gunicorn_enable}}" + else + echo "$0: extra argument ignored" + fi +else + if [ "x${gunicorn_profiles}" != "x" -a "x$1" != "x" ]; then + for profile in ${gunicorn_profiles}; do + echo "===> gunicorn profile: ${profile}" + %%PREFIX%%/etc/rc.d/gunicorn $1 ${profile} + retcode="$?" + if [ "0${retcode}" -ne 0 ]; then + failed="${profile} (${retcode}) ${failed:-}" + else + success="${profile} ${success:-}" + fi + done + exit 0 + fi +fi + gunicorn_precmd() { install -o ${gunicorn_user} /dev/null ${pidfile} |