All pastes #94681 Raw Edit

vdrddfxine

public text v1 · immutable
#94681 ·published 2006-07-21 12:53 UTC
rendered paste body
(main scirpt to run is called "vdrddfxine"

#! /bin/sh
#
# vdr start-stop script
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=vdrddfxine
DESC="VDR - Linux Video Disk Recorder"
export LANG="en_US.iso8859-1"
export LD_ASSUME_KERNEL=2.4.1
#export LD_ASSUME_KERNEL=2.4.19

# Defaults - don't touch, edit /etc/default/vdrcbxine

ENABLED=0

test -f /etc/default/vdrcbxine && . /etc/default/vdrcbxine

test "$ENABLED" != "0" || exit 0

if [ ! -e "${SVDRP}" ]; then
   echo -e "ERROR: ${SVDRP} was not detected.  Exiting. \n"
   exit 0
fi

case "$1" in
  start)
         if ! ps -C vdr > /dev/null 2>&1; then
         cd /usr/local/bin
         ./insdvb.sh load
         echo -n "Starting $DESC: $NAME"
#        if [ -e "/usr/bin/mplayer" ]; then
#        /usr/bin/mplayer -vo directfb /etc/vdrb/VDRboot-NTSC.mpeg
#        sleep 2
#        killall mplayer
#         sleep 3
#         killall directfb
#         sleep 3
#        fi
         # DVDR is /dev/cdrom and Loopdevice is /loopdevice -P'dvd -C/dev/cdrom'
         ./$DAEMON -v $VIDEO_DIR -E $EPG_DIR -c $CFG_DIR $OPTIONS \
         $PLUGINS -P'xine -r' -P'remote -i /dev/input/event3' &
#        $PLUGINS -P'mp3 -C /etc/vdr -m /etc/vdr/plugins/mount.sh -i /etc/vdr/plugins/image_convert.sh -c /etc/vdr/images' \
#        -P'mplayer -M /etc/vdr/plugins/mplayer.sh -m /etc/vdr/plugins/mount.sh' -P'dvd -C/dev/cdrom' &
         echo "."
         sleep 12
         svdrpsend.pl -d localhost "MESG VDR Loading Sequence Completed" 2>/dev/null 1>/dev/null
         svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
         /usr/local/bin/startdfxine.sh
         else
         echo -e "VDR is already running..\n"
         fi
         ;;
  stop)
         if ps -C vdr > /dev/null 2>&1; then
         cd /usr/local/bin
         svdrpsend.pl -d localhost "MESG VDR Shutdown Sequence Initialized" 2>/dev/null 1>/dev/null
         svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
         echo -n "Stopping $DESC: $NAME"
         echo "."
         sleep 2
         killall -q -TERM $DAEMON
         sleep 5
         ./insdvb.sh unload
         killall -q df_xine
#        ln -fs /dev/hdc /dev/cdrom
         else
         echo -e "VDR is not running..\n"
         fi
         ;;
  restart|force-reload)
         if ps -C vdr > /dev/null 2>&1; then
         cd /usr/local/bin
         svdrpsend.pl -d localhost "MESG VDR Restart Procedure Initialized" 2>/dev/null 1>/dev/null
         svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
         echo -n "Restarting $DESC: $NAME"
         echo "."
         sleep 2
         killall -q -TERM $DAEMON
         sleep 5
         ./insdvb.sh reload
         if [ -e "/usr/bin/mplayer" ]; then
         /usr/bin/mplayer -frames 175 -vo mpegpes /etc/vdr/discovery2005.mpg 2>/dev/null 1>/dev/null
#        sleep 7
#        killall -q -TERM mplayer
         fi
         ./$DAEMON -v $VIDEO_DIR -E $EPG_DIR -c $CFG_DIR $OPTIONS \
         $PLUGINS &
#        $PLUGINS -P'mp3 -C /etc/vdr -m /etc/vdr/plugins/mount.sh -i /etc/vdr/plugins/image_convert.sh -c /etc/vdr/images' \
#        -P'mplayer -M /etc/vdr/plugins/mplayer.sh -m /etc/vdr/plugins/mount.sh' -P'dvd -C/dev/cdrom' &
         sleep 8
         svdrpsend.pl -d localhost "MESG VDR Restart Procedure Completed" 2>/dev/null 1>/dev/null
         svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
         /usr/local/bin/startdfxine.sh
         else
         echo -e "VDR is not running..\n"
         fi
         ;;
  *)
         N=/etc/init.d/$NAME
         echo "Use: $N {start|stop|restart|force-reload}" >&2
         exit 1
        ;;
esac

exit 0


(script calls to "/etc/default/vdrcbxine"

# /etc/default/vdr
# Default config
# 07-31-05

# Change to 1 to enable vdr's init-script
ENABLED=1

# Which vdr-binary to start
# (vdr-kbd, vdr-lirc, vdr-daemon or vdr-rcu)
DAEMON="vdr"

# svdrpsend.pl location
SVDRP="/usr/local/bin/svdrpsend.pl"

# Video-Directory
VIDEO_DIR="/video0"

# Config-Directory
CFG_DIR="/etc/vdrbxine"

# EPG-Directory
EPG_DIR="/etc/vdrbxine"

# Plugins to load for 1.3.x
PLUGINS="-Pmplayercluster -Pstreamdev-server -Psc -Pyaepg -Pfemon -Pprefermenu -Psysinfo -Ptaste -Ptext2skin -Pepgsearch -Ptvonscreen -Pscreen$

# Options that will be passed to vdr's commandline
# for example: OPTIONS="-w 15 --port=0"
# OPTIONS="-d -l 3 -w 0"
OPTIONS="--terminal=/dev/tty8 -l 3 -w 0"

(script all calls to "SVDRP"

#!/usr/bin/perl

use Socket;
use Getopt::Std;

$Usage = qq{
Usage: $0 options command...

Options: -d hostname        destination hostname (default: localhost)
         -p port            SVDRP port number (default: 2001)
};

die $Usage if (!$ARGV[0] || !getopts("d:p:"));

$Dest = $opt_d  || "localhost";
$Port = $opt_p  || 2001;
$Cmd  = "@ARGV" || Error("missing command");

$Timeout = 10; # max. seconds to wait for response

$SIG{ALRM} = sub { Error("timeout"); };
alarm($Timeout);

$iaddr = inet_aton($Dest)                   || Error("no host: $Dest");
$paddr = sockaddr_in($Port, $iaddr);

$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto)  || Error("socket: $!");
connect(SOCK, $paddr)                       || Error("connect: $!");
select(SOCK); $| = 1;
Receive();
Send($Cmd);
Send("quit");
close(SOCK)                                 || Error("close: $!");

sub Send
{
  my $cmd = shift || Error("no command to send");
  print SOCK "$cmd\r\n";
  Receive();
}

sub Receive
{
  while (<SOCK>) {
        print STDOUT $_;
        last if substr($_, 3, 1) ne "-";
        }
}

sub Error
{
  print STDERR "@_\n";
  close(SOCK);
  exit 0;
}