summaryrefslogtreecommitdiff
path: root/utilities/lirc/lirc_init
diff options
context:
space:
mode:
authorroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
committerroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
commit0e7005fcc7483c01aa102fbea358c5ac65a48d62 (patch)
tree11517ce0d3d2977c6732b3aa583b0008083e0bd3 /utilities/lirc/lirc_init
downloadx-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.gz
x-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.bz2
hello world
Diffstat (limited to 'utilities/lirc/lirc_init')
-rw-r--r--utilities/lirc/lirc_init130
1 files changed, 130 insertions, 0 deletions
diff --git a/utilities/lirc/lirc_init b/utilities/lirc/lirc_init
new file mode 100644
index 0000000..05afcb0
--- /dev/null
+++ b/utilities/lirc/lirc_init
@@ -0,0 +1,130 @@
+#! /bin/sh
+#
+# This is an init script for Debian.
+# Copy it to /etc/init.d/lirc and type
+# > update-rc.d lirc defaults 20
+#
+
+# default configuration
+DEVICE="/dev/lirc0"
+DRIVER="default"
+LOAD_MODULES=true
+MODULES="lirc_dev lirc_serial"
+
+LIRCD="/usr/sbin/lircd"
+LIRCD_ARGS="--permission=666"
+#LIRCD_CONF="/etc/lirc/lircd.conf"
+
+LIRCMD="/usr/sbin/lircd"
+#LIRCMD_CONF="/etc/lirc/lircmd.conf"
+
+START_LIRCD=true
+START_LIRCMD=true
+
+# load configuration if any
+if [ -f /etc/default/lirc ] ; then
+ . /etc/default/lirc
+fi
+
+[ ! -n "$LIRCD_CONF" ] && LIRCD_CONF="/etc/lirc/lircd.conf"
+[ ! -n "$LIRCMD_CONF" ] && LIRCMD_CONF="/etc/lirc/lircmd.conf"
+
+# functions
+load_modules ()
+{
+ local MODULES_MISSING=false
+
+ for mod in $*
+ do
+ modprobe -k $mod 2> /dev/null || MODULES_MISSING=true
+ done
+
+ if $MODULES_MISSING; then
+ echo "#####################################################"
+ echo "## I couldn't load the required kernel modules ##"
+ echo "## You should install lirc-modules-source to build ##"
+ echo "## kernel support for your hardware. ##"
+ echo "#####################################################"
+ echo "## If this message is not appropriate you may set ##"
+ echo "## LOAD_MODULES=false in /etc/default/lirc ##"
+ echo "#####################################################"
+ START_LIRCMD=false
+ START_LIRCD=false
+ fi
+}
+
+build_args ()
+{
+ local ARGS="$*"
+ if [ -n "$DEVICE" ] && [ "$DEVICE" != "none" ]; then
+ if [ -d /dev/lirc ] && [ "$DEVICE" = "/dev/lirc" ];then
+ #new device names
+ DEVICE="/dev/lirc/0"
+ fi
+ ARGS="--device=$DEVICE $ARGS"
+ fi
+ if [ -n "$DRIVER" ] && [ "$DRIVER" != "none" ]; then
+ ARGS="--driver=$DRIVER $ARGS"
+ fi
+ echo $ARGS
+}
+
+# test
+test -f $LIRCD || exit 0
+test -f $LIRCMD || exit 0
+
+if [ ! -f $LIRCD_CONF ] || grep -q "^#UNCONFIGURED" $LIRCD_CONF ; then
+ if [ "$1" = "start" ] ; then
+ echo "##################################################"
+ echo "## LIRC IS NOT CONFIGURED ##"
+ echo "## ##"
+ echo "## read /usr/share/doc/lirc/html/configure.html ##"
+ echo "##################################################"
+ fi
+ START_LIRCD=false
+ START_LIRCMD=false
+fi
+if [ ! -f $LIRCMD_CONF ] || grep -q "^#UNCONFIGURED" $LIRCMD_CONF ; then
+ START_LIRCMD=false
+fi
+
+# run
+case "$1" in
+ start)
+ if $LOAD_MODULES && $START_LIRCD ; then
+ load_modules $MODULES
+ fi
+ if $START_LIRCD ; then
+ echo -n "Starting lirc daemon: lircd"
+ LIRCD_ARGS=`build_args $LIRCD_ARGS`
+ start-stop-daemon --start --quiet --exec $LIRCD -- $LIRCD_ARGS $LIRCD_CONF < /dev/null
+ fi
+ if $START_LIRCMD ; then
+ echo -n " lircmd"
+ start-stop-daemon --start --quiet --exec $LIRCMD -- $LIRCMD_CONF < /dev/null
+ fi
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping lirc daemon: lircmd"
+ start-stop-daemon --stop --quiet --exec $LIRCMD
+ echo -n " lircd"
+ start-stop-daemon --stop --quiet --exec $LIRCD
+ echo "."
+ ;;
+ reload|force-reload)
+ start-stop-daemon --stop --quiet --signal 1 --exec $LIRCD
+ start-stop-daemon --stop --quiet --signal 1 --exec $LIRCMD
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0