From 34e77b742c61508b8e5ee0c7275fc59f7453c425 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 4 May 2012 00:28:59 -0500
Subject: runit-scripts: remotes run: add support for /etc/runit/lirc.sh. refs
 #821

---
 abs/core/runit-scripts/PKGBUILD                    |   2 +-
 .../runitscripts/services/remotes/run              | 186 +++++++++++----------
 2 files changed, 101 insertions(+), 87 deletions(-)

diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD
index 9357169..48e469d 100755
--- a/abs/core/runit-scripts/PKGBUILD
+++ b/abs/core/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=2.1.1
-pkgrel=62
+pkgrel=63
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/run b/abs/core/runit-scripts/runitscripts/services/remotes/run
index 9d46b0e..0943a8e 100755
--- a/abs/core/runit-scripts/runitscripts/services/remotes/run
+++ b/abs/core/runit-scripts/runitscripts/services/remotes/run
@@ -17,99 +17,113 @@ fi
 echo "`date` --- run started" >> $LOG
 
 
-. /etc/systemconfig
-stat_runit "Starting remotes"
 
-[ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime
-[ -e /var/run/lirc ] || mkdir -p /var/run/lirc
+#What is done in this file may not be enough to start your specific remote.
+#If that is true of your remote place your remote startup commands in:
+# /etc/runit/lirc.sh
+#Anything in that file will be used and the rest of this file is ignored.
 
-num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l `
-num_lirc=$((num_lirc-1))
-
-serial_port=""
-
-if [ x$ReceiverType = xSerial ]
-then
-    serial_port=$ReceiverSerialport
-elif [ x$HostBlasterType = xSerial ]
-then
-    serial_port=$HostSerialPort_blasterlirc
-fi
-
-if [ -n "$serial_port" ]
-then
-    #/dev/ttyS0 (COM1), port 0x3f8, irq 4
-    #/dev/ttyS1 (COM2), port 0x2f8, irq 3
-    #/dev/ttyS2 (COM3), port 0x3e8, irq 4
-    #/dev/ttyS3 (COM4), port 0x2e8, irq 3
-
-    case $serial_port in
-    ttyS0)
-           FLAGS="io=0x3f8  irq=4"
-           ;;
-    ttyS1)
-           FLAGS="io=0x2f8  irq=3"
-           ;;
-    ttyS2)
-           FLAGS="io=0x3e8  irq=4"
-           ;;
-    ttyS3)
-           FLAGS="io=0x2e8  irq=3"
-           ;;
-    esac
-    /usr/bin/setserial /dev/$serial_port uart none
-    sleep 0.5
-    /sbin/modprobe lirc_serial $FLAGS
-    sleep 0.5
-fi
-
-if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ]
-then
-    CMD="/usr/sbin/lircd -r -n  --driver=commandir"
-    printhl "   Using commandir"
-    echo $CMD >>$LOG
-    $CMD >>$LOG 2>>$LOG
-elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
+if [ -f /etc/runit/lirc.sh ]
 then
-    sv start igdaemon
-    CMD="/usr/sbin/lircd -r -n  --driver=iguanaIR"
-    printhl "       Using iguanaIR usb"
-    echo $CMD >>$LOG
-    $CMD >>$LOG 2>>$LOG
-elif [ x$ReceiverType = "xSiliconDust_HDHR" ]
-then
-    # if using the SiliconDust_HDHR as an I/R Receiver
-    CMD="/usr/sbin/lircd -H udp -d 5000 -n"
-    printhl "   Using SiliconDust on port 5000"
-    echo $CMD >>$LOG
-    $CMD >>$LOG 2>>$LOG
+    #program must not terminate.
+    stat_runit "Starting remotes from /etc/runit/lirc.sh"
+    echo "Starting remotes from /etc/runit/lirc.sh" >>$LOG
+    /etc/runit/lirc.sh
 else
-    LASTCMD=""
-
-    for i in `seq 1 $num_lirc`
-    do
-        CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
-        printhl "   Device $i"
+    . /etc/systemconfig
+    stat_runit "Starting remotes"
+    
+    [ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime
+    [ -e /var/run/lirc ] || mkdir -p /var/run/lirc
+    
+    num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l `
+    num_lirc=$((num_lirc-1))
+    
+    serial_port=""
+    
+    if [ x$ReceiverType = xSerial ]
+    then
+        serial_port=$ReceiverSerialport
+    elif [ x$HostBlasterType = xSerial ]
+    then
+        serial_port=$HostSerialPort_blasterlirc
+    fi
+    
+    if [ -n "$serial_port" ]
+    then
+        #/dev/ttyS0 (COM1), port 0x3f8, irq 4
+        #/dev/ttyS1 (COM2), port 0x2f8, irq 3
+        #/dev/ttyS2 (COM3), port 0x3e8, irq 4
+        #/dev/ttyS3 (COM4), port 0x2e8, irq 3
+    
+        case $serial_port in
+        ttyS0)
+               FLAGS="io=0x3f8  irq=4"
+               ;;
+        ttyS1)
+               FLAGS="io=0x2f8  irq=3"
+               ;;
+        ttyS2)
+               FLAGS="io=0x3e8  irq=4"
+               ;;
+        ttyS3)
+               FLAGS="io=0x2e8  irq=3"
+               ;;
+        esac
+        /usr/bin/setserial /dev/$serial_port uart none
+        sleep 0.5
+        /sbin/modprobe lirc_serial $FLAGS
+        sleep 0.5
+    fi
+    
+    if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ]
+    then
+        CMD="/usr/sbin/lircd -r -n  --driver=commandir"
+        printhl "   Using commandir"
         echo $CMD >>$LOG
         $CMD >>$LOG 2>>$LOG
-        LASTCMD="--connect=localhost:876$i   $LASTCMD    "
-    done
-
-    echo $LASTCMD >>$LOG
-
-    if [ -f /etc/remote.run ]
+    elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
     then
-        #program must not terminate.
-
-        stat_runit "Starting remotes from /etc/remote.run"
-        LCMD="/etc/remote.run    $LASTCMD"
-        echo "Starting remotes from $LCMD" >>$LOG
-        exec $LCMD >>$LOG 2>>$LOG
+        sv start igdaemon
+        CMD="/usr/sbin/lircd -r -n  --driver=iguanaIR"
+        printhl "       Using iguanaIR usb"
+        echo $CMD >>$LOG
+        $CMD >>$LOG 2>>$LOG
+    elif [ x$ReceiverType = "xSiliconDust_HDHR" ]
+    then
+        # if using the SiliconDust_HDHR as an I/R Receiver
+        CMD="/usr/sbin/lircd -H udp -d 5000 -n"
+        printhl "   Using SiliconDust on port 5000"
+        echo $CMD >>$LOG
+        $CMD >>$LOG 2>>$LOG
     else
-        echo "Disable in kernel remote driver" >>$LOG
-        in_kernel_support "disable"
-        LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd  $LASTCMD"
-        echo "Starting remotes from $LCMD" >>$LOG
-        exec $LCMD >>$LOG 2>>$LOG
+        LASTCMD=""
+    
+        for i in `seq 1 $num_lirc`
+        do
+            CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
+            printhl "   Device $i"
+            echo $CMD >>$LOG
+            $CMD >>$LOG 2>>$LOG
+            LASTCMD="--connect=localhost:876$i   $LASTCMD    "
+        done
+    
+        echo $LASTCMD >>$LOG
+    
+        if [ -f /etc/remote.run ]
+        then
+            #program must not terminate.
+    
+            stat_runit "Starting remotes from /etc/remote.run"
+            LCMD="/etc/remote.run    $LASTCMD"
+            echo "Starting remotes from $LCMD" >>$LOG
+            exec $LCMD >>$LOG 2>>$LOG
+        else
+            echo "Disable in kernel remote driver" >>$LOG
+            in_kernel_support "disable"
+            LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd  $LASTCMD"
+            echo "Starting remotes from $LCMD" >>$LOG
+            exec $LCMD >>$LOG 2>>$LOG
+        fi
     fi
 fi
-- 
cgit v0.12

