summaryrefslogtreecommitdiff
path: root/www/py-gunicorn
diff options
context:
space:
mode:
Diffstat (limited to 'www/py-gunicorn')
-rw-r--r--www/py-gunicorn/Makefile2
-rw-r--r--www/py-gunicorn/files/gunicorn.in40
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}