This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

lirc init script

By: a guest on May 20th, 2012  |  syntax: Bash  |  size: 4.26 KB  |  views: 28  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #! /bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides:          lirc
  4. # Required-Start:    $remote_fs $syslog
  5. # Required-Stop:     $remote_fs $syslog
  6. # Default-Start:     2 3 4 5
  7. # Default-Stop:      0 1 6
  8. # Short-Description: Starts LIRC daemon.
  9. # Description:       LIRC is used to control different
  10. #                    infrared receivers and transceivers.
  11. ### END INIT INFO
  12.  
  13. load_modules ()
  14. {
  15.         MODULES_MISSING=false
  16.  
  17.         log_daemon_msg "Loading LIRC modules"
  18.         for mod in $*; do
  19.                 modprobe $mod 2> /dev/null || MODULES_MISSING=true
  20.         done
  21.  
  22.         # avoid a hard dependency or a flag day between udev versions
  23.         if [ -x /sbin/udevadm ]; then
  24.                 # udev >= 0.117
  25.                 udevadm settle || echo "timeout waiting for devices to be ready"
  26.         elif [ -x /sbin/udevsettle ]; then
  27.                 # udev < 0.117
  28.                 udevsettle || echo "timeout waiting for devices to be ready"
  29.         fi
  30.  
  31.         log_end_msg $?
  32.  
  33.         if $MODULES_MISSING; then
  34.                 log_failure_msg "Unable to load LIRC kernel modules. Verify your"
  35.                 log_failure_msg "selected kernel modules in /etc/lirc/hardware.conf"
  36.                 START_LIRCMD=false
  37.                 START_LIRCD=false
  38.         fi
  39. }
  40.  
  41. build_args ()
  42. {
  43.         ARGS="$*"
  44.  
  45.         ## Try to find an lirc device.
  46.         if [ -z "$DEVICE" ]; then
  47.                 if [ -c $dev ]; then
  48.                         DEVICE="$dev"
  49.                         break
  50.                 fi
  51.         fi
  52.  
  53.         if [ -n "$DEVICE" ] && [ "$DEVICE" != "none" ]; then
  54.                 ARGS="--device=$DEVICE $ARGS"
  55.         fi
  56.  
  57.         if [ -n "$DRIVER" ] && [ "$DRIVER" != "none" ]; then
  58.                 ARGS="--driver=$DRIVER $ARGS"
  59.         fi
  60.  
  61.         echo $ARGS
  62. }
  63.  
  64. . /lib/lsb/init-functions
  65.  
  66. test -f /usr/sbin/lircd || exit 0
  67. test -f /usr/sbin/lircmd || exit 0
  68.  
  69. START_LIRCMD=true
  70. START_LIRCD=true
  71. START_IREXEC=true
  72.  
  73.  
  74. if [ -f /etc/lirc/hardware.conf ];then
  75.         . /etc/lirc/hardware.conf
  76. fi
  77.  
  78. if [ ! -f /etc/lirc/lircd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf; then
  79.         if [ "$1" = "start" ]; then
  80.                 log_success_msg "No valid /etc/lirc/lircd.conf has been found."
  81.                 log_success_msg "Remote control support has been disabled."
  82.                 log_success_msg "Reconfigure LIRC or manually replace /etc/lirc/lircd.conf to enable."
  83.         fi
  84.  
  85.         START_LIRCD=false
  86.         START_LIRCMD=false
  87.         START_IREXEC=false
  88. fi
  89.  
  90. if [ ! -f /etc/lirc/lircmd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf; then
  91.         START_LIRCMD=false
  92. fi
  93.  
  94. if [ ! -f /etc/lirc/lircrc ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircrc; then
  95.         START_IREXEC=false
  96. fi
  97.  
  98.  
  99.  
  100. case "$1" in
  101.         start)
  102.                 if [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then
  103.                         load_modules $MODULES
  104.                 fi
  105.  
  106.                 if [ "$START_LIRCD" = "true" ]; then
  107.                         log_daemon_msg "Starting remote control daemon(s) : LIRC "
  108.                         LIRCD_ARGS=`build_args $LIRCD_ARGS`
  109.  
  110.                         if [ ! -z "$LIRCD_ARGS" ]; then
  111.                                 start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $LIRCD_ARGS < /dev/null
  112.                                 log_end_msg $?
  113.                         else
  114.                                 log_end_msg 1
  115.                         fi
  116.                 fi
  117.  
  118.                 if [ "$START_LIRCMD" = "true" ]; then
  119.                         log_daemon_msg "Starting remote control mouse daemon : LIRCMD "
  120.                         start-stop-daemon --start --quiet --exec /usr/sbin/lircmd < /dev/null
  121.                         log_end_msg $?
  122.                 fi
  123.  
  124.                 if [ "$START_IREXEC" = "true" ]; then
  125.                         log_daemon_msg "Starting execution daemon: irexec"
  126.                         start-stop-daemon --start --quiet --exec /usr/bin/irexec -- -d /etc/lirc/lircrc < /dev/null
  127.                         log_end_msg $?
  128.                 fi
  129.                 ;;
  130.         stop)
  131.                 if [ "$START_IREXEC" = "true" ]; then
  132.                         log_daemon_msg "Stopping execution daemon: irexec"
  133.                         start-stop-daemon --stop --quiet --exec /usr/bin/irexec
  134.                         log_end_msg $?
  135.                 fi
  136.  
  137.                 if [ "$START_LIRCMD" = "true" ]; then
  138.                         log_daemon_msg "Stopping remote control mouse daemon: LIRCMD"
  139.                         start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd
  140.                         log_end_msg $?
  141.                 fi
  142.  
  143.                 if [ "$START_LIRCD" = "true" ]; then
  144.                         log_daemon_msg "Stopping remote control daemon(s): LIRC"
  145.                         start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
  146.                         log_end_msg $?
  147.                 fi
  148.                 ;;
  149.         reload|force-reload)
  150.                 if [ "$START_IREXEC" = "true" ]; then
  151.                         start-stop-daemon --stop --quiet --signal 1 --exec /usr/bin/irexec
  152.                 fi
  153.  
  154.                 if [ "$START_LIRCD" = "true" ]; then
  155.                         start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd
  156.                 fi
  157.  
  158.                 if [ "$START_LIRCMD" = "true" ]; then
  159.                         start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd
  160.                 fi
  161.                 ;;
  162.         restart)
  163.                 $0 stop
  164.                 sleep 1
  165.                 $0 start
  166.                 ;;
  167.         *)
  168.                 echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
  169.         exit 1
  170. esac
  171.  
  172. exit 0
clone this paste RAW Paste Data