multimedia/cx88: fix rc startup script

PR:		197574
Submitted by:	Jason Harmening <jason.harmening@gmail.com>
This commit is contained in:
Bartek Rutkowski 2015-03-02 17:30:53 +00:00
parent 84bdb03933
commit 6617121520
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=380277
3 changed files with 75 additions and 2 deletions

View file

@ -3,6 +3,7 @@
PORTNAME= cx88
PORTVERSION= 1.4.11
PORTREVISION= 1
CATEGORIES= multimedia
MASTER_SITES= ftp://corona.homeunix.net/ports/cx88/
@ -17,7 +18,8 @@ BUILD_DEPENDS= ${LOCALBASE}/lib/libezxml.a:${PORTSDIR}/textproc/ezxml \
MAKE_ARGS+= LIBTUNER_LIB=${LOCALBASE}/lib/libtuner LIBTUNER_HEADER=${LOCALBASE}/include/libtuner KMODDIR=${KMODDIR} PREFIX=${STAGEDIR}${PREFIX}
MAKE_JOBS_UNSAFE= yes
USES= kmod pkgconfig uidfix
USES= kmod pkgconfig uidfix
USE_RC_SUBR= cx88d
OPTIONS_DEFINE= DEBUG LINUX_COMPAT HAL

View file

@ -0,0 +1,72 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: cx88d
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf[.local] to enable cx88d
#
# cx88d_enable (bool): Set to "NO" by default.
# Set it to "YES" to enable cx88d.
# cx88d_args (str): Extra arguments to be passed to all cx88 instances (default "-p 0 -q -h -u dvb://")
# cx88d_devs (str): Whitespace-delimited list of devices on which
# to enable DVB capture (e.g. cx88d_devs="cx88mpeg0 cx88mpeg2").
# Defaults to all cx88mpeg devices under /dev.
# cx88d_{dev}_args (str) Extra arguments to be passed to cx88 instance for specific device
# (e.g. cx88d_cx88mpeg1_args="-u udp://127.0.0.1:8802") (default empty)
#
. /etc/rc.subr
name="cx88d"
rcvar=cx88d_enable
load_rc_config $name
: ${cx88d_enable:="NO"}
: ${cx88d_args="-p 0 -q -h -u dvb://"}
procname="%%PREFIX%%/bin/cx88"
command="/usr/sbin/daemon"
cx88d_showports() {
printf "PORT\tCMMMAND\n"
sockstat -l -P tcp | grep cx88 | while read line; do
command=""
port=""
for field in $line; do
if [ `expr "$field" : "[0-9]*"` -gt 0 -a "$command" = "" ]; then
command=`ps -o command= -p $field`
elif [ `expr "$field" : "\*:[0-9]*"` -gt 2 -a "$port" = "" ]; then
port=`echo $field | cut -c 3-`
fi
done
printf "$port\t$command\n"
done
}
extra_commands="showports"
showports_cmd="${name}_showports"
case $1 in
*showports)
run_rc_command "$1"
;;
*rcvar)
run_rc_command "$1"
;;
*)
if [ -z "${cx88d_devs}" ]; then
cx88d_devs=`ls /dev/cx88mpeg* | cut -c 6-`
fi
for devnode in ${cx88d_devs}; do
pidfile="/var/run/cx88d.${devnode}.pid"
eval cx88d_instance_flags=\$cx88d_${devnode}_args
command_args="-fp ${pidfile} ${procname} -d /dev/${devnode} ${cx88d_args} ${cx88d_instance_flags}"
run_rc_command "$1"
done
;;
esac

View file

@ -8,7 +8,6 @@ bin/cx88
%%EXAMPLESDIR%%/cx88_mpeg_client.cpp
%%EXAMPLESDIR%%/hd3k_analog_kbuf.cpp
%%EXAMPLESDIR%%/tuner_config
etc/rc.d/cx88d
include/iicdev/iicdev_ioctl.h
include/cx88/cx88_common_ioctl.h
include/cx88/cx88_mpeg_ioctl.h