MFH: r473979

www/py-graphite-api: clean up rc.d script

- fix ordering in rc.d script so that daemon doesn't hang on startup
- teach rc.d to behave when installing with multiple python & gunicorn versions
- clean up substitutions in SUB_LIST, pkg-list and *.in script
- ensure working directories are re-created on startup if required

PR:		 223264
Submitted by:	Horst Kapfenberger <horst.kapfenberger@agoracon.at>
Approved by:	jrm
Differential Revision:	https://reviews.freebsd.org/D13581

Approved by:	ports-secteam
This commit is contained in:
Dave Cottlehuber 2018-07-05 19:03:47 +00:00
parent cc66891187
commit b216f2829a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2018Q3/; revision=473981
2 changed files with 27 additions and 15 deletions

View File

@ -3,11 +3,12 @@
PORTNAME= graphite-api
PORTVERSION= 1.1.3
PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= dch@skunkwerks.at
MAINTAINER= dch@FreeBSD.org
COMMENT= Graphite-web, without the interface - just the rendering HTTP API
LICENSE= APACHE20
@ -24,15 +25,16 @@ RUN_DEPENDS= \
${PYTHON_PKGNAMEPREFIX}gunicorn>=19.4.1:www/py-gunicorn@${PY_FLAVOR} \
xorg-fonts-truetype>=0:x11-fonts/xorg-fonts-truetype
NO_ARCH= yes
USES= python
USE_PYTHON= distutils py3kplist
NO_ARCH= yes
GRAPHITEAPI_APP= graphiteapi
SUB_FILES= pkg-message
SUB_LIST= PORTNAME=${PORTNAME} \
PREFIX=${PREFIX} \
SUB_LIST= PYTHON_VER=${PYTHON_VER} \
PYTHON_VERSION=${PYTHON_VERSION} \
GRAPHITEAPI_APP=${GRAPHITEAPI_APP} \
GRAPHITEAPI_USER=${GRAPHITEAPI_USER} \
GRAPHITEAPI_GROUP=${GRAPHITEAPI_GROUP} \
@ -40,10 +42,7 @@ SUB_LIST= PORTNAME=${PORTNAME} \
GRAPHITEAPI_TMPDIR=${GRAPHITEAPI_TMPDIR} \
GRAPHITEAPI_PIDFILE=${GRAPHITEAPI_PIDFILE}
PLIST_SUB= PORTNAME=${PORTNAME} \
PORTVERSION=${PORTVERSION} \
PREFIX=${PREFIX} \
GRAPHITEAPI_APP=${GRAPHITEAPI_APP} \
PLIST_SUB= GRAPHITEAPI_APP=${GRAPHITEAPI_APP} \
GRAPHITEAPI_USER=${GRAPHITEAPI_USER} \
GRAPHITEAPI_GROUP=${GRAPHITEAPI_GROUP} \
GRAPHITEAPI_LOGDIR=${GRAPHITEAPI_LOGDIR} \

View File

@ -23,8 +23,10 @@
name="%%GRAPHITEAPI_APP%%"
rcvar="%%GRAPHITEAPI_APP%%_enable"
desc="graphite-web rendering API"
load_rc_config ${name}
# defaults
: ${graphiteapi_enable:="NO"}
: ${graphiteapi_user="%%GRAPHITEAPI_USER%%"}
: ${graphiteapi_group="%%GRAPHITEAPI_GROUP%%"}
@ -32,21 +34,32 @@ rcvar="%%GRAPHITEAPI_APP%%_enable"
: ${graphiteapi_config="%%ETCDIR%%/%%GRAPHITEAPI_APP%%.yaml"}
: ${graphiteapi_flags="--workers 4"}
# daemon
command="%%PREFIX%%/bin/gunicorn"
required_files="${graphiteapi_config}"
command_args="graphite_api.app:app"
command="%%PREFIX%%/bin/gunicorn-%%PYTHON_VER%%"
procname="%%PYTHON_VERSION%%"
pidfile="%%GRAPHITEAPI_PIDFILE%%"
command_args="--daemon graphite_api.app:app"
command_args="${command_args} --user ${graphiteapi_user} --group ${graphiteapi_group}"
command_args="${command_args} --bind ${graphiteapi_address}"
command_args="${command_args} --env TZ=UTC"
command_args="${command_args} --env GRAPHITE_API_CONFIG=${graphiteapi_config}"
command_args="${command_args} --pid %%GRAPHITEAPI_PIDFILE%%"
command_args="${command_args} --worker-tmp-dir %%GRAPHITEAPI_TMPDIR%%"
command_args="${command_args} --error-logfile %%GRAPHITEAPI_LOGDIR%%/error.log"
command_args="${command_args} --access-logfile %%GRAPHITEAPI_LOGDIR%%/access.log"
# support SIGHUP to reload configuration file
extra_commands="reload"
start_precmd="start_precmd"
start_precmd()
{
test -d "%%GRAPHITEAPI_LOGDIR%%" || install -d -o
${graphiteapi_user} \
-g ${graphiteapi_group} -m 0750 "%%GRAPHITEAPI_LOGDIR%%"
test -d "%%GRAPHITEAPI_TMPDIR%%" || install -d -o ${graphiteapi_user} \
-g ${graphiteapi_group} -m 0750 "%%GRAPHITEAPI_TMPDIR%%"
}
load_rc_config $name
run_rc_command "$1"