Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jul 2018 18:23:23 +0000 (UTC)
From:      Dave Cottlehuber <dch@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r473979 - in head/www/py-graphite-api: . files
Message-ID:  <201807051823.w65INNb3000810@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dch
Date: Thu Jul  5 18:23:22 2018
New Revision: 473979
URL: https://svnweb.freebsd.org/changeset/ports/473979

Log:
  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
  MFH:		2018Q3
  Differential Revision:	https://reviews.freebsd.org/D13581

Modified:
  head/www/py-graphite-api/Makefile
  head/www/py-graphite-api/files/graphiteapi.in

Modified: head/www/py-graphite-api/Makefile
==============================================================================
--- head/www/py-graphite-api/Makefile	Thu Jul  5 17:31:36 2018	(r473978)
+++ head/www/py-graphite-api/Makefile	Thu Jul  5 18:23:22 2018	(r473979)
@@ -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} \

Modified: head/www/py-graphite-api/files/graphiteapi.in
==============================================================================
--- head/www/py-graphite-api/files/graphiteapi.in	Thu Jul  5 17:31:36 2018	(r473978)
+++ head/www/py-graphite-api/files/graphiteapi.in	Thu Jul  5 18:23:22 2018	(r473979)
@@ -23,8 +23,10 @@
 
 name="%%GRAPHITEAPI_APP%%"
 rcvar="%%GRAPHITEAPI_APP%%_enable"
+desc="graphite-web rendering API"
 
-# defaults
+load_rc_config ${name}
+
 : ${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"
 
-load_rc_config $name
+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%%"
+}
+
 run_rc_command "$1"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807051823.w65INNb3000810>