#! /bin/sh # # $FreeBSD: head/www/tt-rss/files/ttrssd.in 413313 2016-04-14 19:19:36Z thierry $ # # PROVIDE: ttrssd # REQUIRE: LOGIN mysql postgresql # KEYWORD: shutdown # Add the following lines to /etc/rc.conf to enable `ttrssd': # # ttrssd_enable="YES" # # ttrssd_local_db (bool): Set to "YES" by default. # Set it to "NO" if the database is on another # server. . /etc/rc.subr name="ttrssd" rcvar=ttrssd_enable # read settings, set default values load_rc_config "${name}" : ${ttrssd_enable="NO"} : ${ttrssd_local_db:="YES"} required_files="%%WWWDIR%%/config.php" pidfile="/var/run/${name}.pid" phpcli="%%LOCALBASE%%/bin/php" command_interpreter=$phpcli long_name="Tiny Tiny RSS updating feeds daemon." phpupd="update_daemon2.php" ttrssd_log="/var/log/${name}.log" ttrssd_user="%%WWWOWN%%" start_precmd=${name}_prestart start_cmd=${name}_start stop_cmd=${name}_stop %%MYSQL%%CHECK_CMD="%%LOCALBASE%%/bin/mysqladmin -u mysqld ping" %%MYSQL%%CHECK_MSG="${name}: mysqladmin command failed; mysql not ready?" # Waiting for pg_isready when 9.3 is the default %%PGSQL%%CHECK_CMD="%%LOCALBASE%%/etc/rc.d/postgresql status" %%PGSQL%%CHECK_MSG="${name}: postgresql status failed; postgresql not ready?" ttrssd_start() { [ -x $phpcli ] || (echo "$phpcli not found"; exit 1) [ -f $pidfile ] && (echo "$name already running?"; exit 2) echo "Starting $long_name" (cd %%WWWDIR%% && su -fm $ttrssd_user -c "./$phpupd" > $ttrssd_log &) && \ echo $$ > $pidfile } ttrssd_stop() { [ -f $pidfile ] || (echo "$name not running?"; exit 1) echo "Stopping $long_name" kill `ps ax | grep $phpupd | grep -v grep | awk '{print $1}'` rm -f $pidfile } ttrssd_prestart() { if checkyesno ttrssd_local_db; then # Wait for the local database to be started local _count=0 while : ; do $CHECK_CMD > /dev/null 2>&1 && return _count=$(( $_count + 1 )) if [ $_count -gt 10 ]; then err 1 $CHECK_MSG fi sleep 1 done fi } run_rc_command "$1"