Noad.sh

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(siehe Probleme...)
K (Änderungen von Benutzer:89.96.169.141 rückgängig gemacht und letzte Version von Benutzer:Anonymous wiederhergestellt)
 
(19 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Script von [[noad]].
+
Vorschlag für ein einfaches Skript um [[noad]] zu ''starten'', welches über die [[reccmds.conf]] ausgeführt werden kann.
  
{{Box Datei | $PATH/noad.sh |
+
{{Box Datei | [[Struktur|$PATH]]/noad.sh |
 
<pre>
 
<pre>
#!/bin/bash
+
#!/bin/sh
 
#
 
#
 
# noad.sh
 
# noad.sh
 
#
 
#
# Required: noad, at
+
# source: noad
 
#
 
#
 
# add this lines to your reccmds.conf:
 
# add this lines to your reccmds.conf:
 
# folgende zeilen in die reccmds.conf eintragen:
 
# folgende zeilen in die reccmds.conf eintragen:
 
#
 
#
# Run noad                         : /path_to_this_script/noad.sh -start
+
# Run noad                         : /path_to_this_script/noad.sh -start
# Run noad, all recordings (batch) : /path_to_this_script/noad.sh -batch
+
# Run noad, all recordings (batch)? : /path_to_this_script/noad.sh -batch
# View Cut list                    : /path_to_this_script/noad.sh -view
+
# In prozess                       : /path_to_this_script/noad.sh -count
# In prozess                       : /path_to_this_script/noad.sh -count
+
# Stop noad (killpid)               : /path_to_this_script/noad.sh -killpid
# Stop noad (killpid)             : /path_to_this_script/noad.sh -killpid
+
# Stop noad (killall)?             : /path_to_this_script/noad.sh -killall
# Stop noad (killall)?             : /path_to_this_script/noad.sh -killall
+
# Remove marks                     : /path_to_this_script/noad.sh -rmmarks
# Remove marks                     : /path_to_this_script/noad.sh -marks
+
# Remove all marks?                 : /path_to_this_script/noad.sh -rmallmarks
# Remove pid                      : /path_to_this_script/noad.sh -pid
+
# Remove all marks                : /path_to_this_script/noad.sh -marks.vdr
+
# Remove all pids                  : /path_to_this_script/noad.sh -noad.pid
+
  
 
# CONFIG START
 
# CONFIG START
   NOADOPTS="nice --background --ac3 --overlap --jumplogo --comments --OSD --statisticfile=/var/log/vdr/noadstat"
+
   NOADOPTS="nice --ac3 --overlap --jumplogo --comments --OSD --statisticfile=/var/log/vdr/noad.log"
   VDR_VIDEO="/video"
+
   VDR_VIDEO="/video0"
 
# CONFIG END
 
# CONFIG END
  
PATH=/usr/local/bin:$PATH
+
which noad >/dev/null 2>&1 || { echo noad $"not found" ... ; exit 1 ; }
  
case "$1" in
+
case $1 in
    -start)
+
    -start)
echo "recording: "
+
echo $"Recording" ...
 
echo
 
echo
 
echo "$2"
 
echo "$2"
 
echo
 
echo
if [ -e "$2/noad.pid" ] ; then
+
if [ -s "${PIDFILE:=$2/noad.pid}" ] ; then
    echo "noad is already active..."
+
    read PID < "$PIDFILE"
else
+
    if ps -p $PID >/dev/null 2>&1 ; then
    echo "noad $NOADOPTS \"$2\" >/dev/null 2>&1" | at now
+
echo $"Noad process already active" "(pid: $PID)" ...
    echo "noad startet..."
+
exit 0
 +
    else
 +
        rm "$PIDFILE"
 +
    fi
 
fi
 
fi
 +
screen -dm sh -c "noad $NOADOPTS \"$2\""
 +
echo $"Noad startet" ...
 
;;
 
;;
    -batch)
+
    -batch)
while read i ; do
+
        screen -dm bash -c " \
    if [ ! -e "$i/marks.vdr" -a ! -e "$i/noad.pid" ] ; then
+
    while read i ; do \
echo "noad $NOADOPTS \"$i\" >/dev/null 2>&1"
+
noad $NOADOPTS \"\$i\" &
echo "while pidof noad >/dev/null ; do sleep 10s ; done"
+
wait \$! ; \
    fi
+
    done < <(find "$VDR_VIDEO" -follow -name "*.rec")"
done < <(find "$VDR_VIDEO" -follow -name "*.rec") | at now
+
;;
+
    -view)
+
echo "recording: "
+
echo
+
echo "$2"
+
echo
+
if [ -e "$2/noad.pid" ] ; then
+
    echo "noad is still active..."
+
    echo
+
fi
+
if [ -e "$2/marks.vdr" ] ; then
+
    cat "$2/marks.vdr"
+
else
+
    echo "cut list not found..."
+
fi
+
 
;;
 
;;
    -count)
+
    -count)
echo "all noad processes: $(pidof noad | wc -w | tr -d ' ')"
+
echo $"Noad processes" $(pidof noad | wc -w | tr -d ' ') ...
 
;;
 
;;
    -killpid)
+
    -killpid)
echo "recording: "
+
echo $"Recording" ...
 
echo
 
echo
 
echo "$2"
 
echo "$2"
 
echo
 
echo
if [ -e "$2/noad.pid" ] ; then
+
if [ -s "${PIDFILE:=$2/noad.pid}" ] ; then
    kill `cat "$2/noad.pid"`
+
    read PID < "$PIDFILE"
    echo "noad stopped..."
+
    if ps -p $PID >/dev/null 2>&1 ; then
else
+
kill $PID
    echo "noad is not active..."
+
echo $"Noad stopped" "(pid: $PID)" ...
 +
exit 0
 +
    fi
 +
            rm -f "$PIDFILE"
 
fi
 
fi
 +
echo $"Noad is not active" ...
 
;;
 
;;
    -killall)
+
    -killall)
PID=`pidof noad`
+
pidof noad | xargs -r kill
eval ${PID:+kill $PID}
+
 
;;
 
;;
    -marks)
+
    -rmmarks)
 
rm -f "$2/marks.vdr"
 
rm -f "$2/marks.vdr"
 
;;
 
;;
    -pid)
+
    -rmallmarks)
rm -f "$2/noad.pid"
+
find "$VDR_VIDEO" -follow -type f -name marks.vdr -print0 2>/dev/null | xargs -r0 rm
 
;;
 
;;
    -marks.vdr|-noad.pid)
+
    *)
find "$VDR_VIDEO" -follow -type f -name "${1/-}" -exec  rm -f '{}' ';' &
+
;;
+
    *)
+
 
echo "unrecognized option: $1"
 
echo "unrecognized option: $1"
 
exit 1
 
exit 1
 
;;
 
;;
 
esac
 
esac
 +
 +
exit $?
 
</pre>
 
</pre>
 
}}
 
}}
  
[[Kategorie:Scripts]]
+
==Quellen==
 +
* [[noad]]
 +
 
 +
[[Kategorie:Skripte]]

Aktuelle Version vom 25. Mai 2009, 07:42 Uhr

Vorschlag für ein einfaches Skript um noad zu starten, welches über die reccmds.conf ausgeführt werden kann.

Datei
$PATH/noad.sh
#!/bin/sh
#
# noad.sh
#
# source: noad
#
# add this lines to your reccmds.conf:
# folgende zeilen in die reccmds.conf eintragen:
#
# Run noad                          : /path_to_this_script/noad.sh -start
# Run noad, all recordings (batch)? : /path_to_this_script/noad.sh -batch
# In prozess                        : /path_to_this_script/noad.sh -count
# Stop noad (killpid)               : /path_to_this_script/noad.sh -killpid
# Stop noad (killall)?              : /path_to_this_script/noad.sh -killall
# Remove marks                      : /path_to_this_script/noad.sh -rmmarks
# Remove all marks?                 : /path_to_this_script/noad.sh -rmallmarks

# CONFIG START
  NOADOPTS="nice --ac3 --overlap --jumplogo --comments --OSD --statisticfile=/var/log/vdr/noad.log"
  VDR_VIDEO="/video0"
# CONFIG END

which noad >/dev/null 2>&1 || { echo noad $"not found" ... ; exit 1 ; }

case $1 in
     -start)
	echo $"Recording" ...
	echo
	echo "$2"
	echo
	if [ -s "${PIDFILE:=$2/noad.pid}" ] ; then
	    read PID < "$PIDFILE"
	    if ps -p $PID >/dev/null 2>&1 ; then
		echo $"Noad process already active" "(pid: $PID)" ...
		exit 0
	    else
	        rm "$PIDFILE"
	    fi
	fi
	screen -dm sh -c "noad $NOADOPTS \"$2\""
	echo $"Noad startet" ...
	;;
     -batch)
        screen -dm bash -c " \
	    while read i ; do \
		noad $NOADOPTS \"\$i\" &
		wait \$! ; \
	    done < <(find "$VDR_VIDEO" -follow -name "*.rec")"
	;;
     -count)
	echo $"Noad processes" $(pidof noad | wc -w | tr -d ' ') ...
	;;
     -killpid)
	echo $"Recording" ...
	echo
	echo "$2"
	echo
	if [ -s "${PIDFILE:=$2/noad.pid}" ] ; then
	    read PID < "$PIDFILE"
	    if ps -p $PID >/dev/null 2>&1 ; then
		kill $PID
		echo $"Noad stopped" "(pid: $PID)" ...
		exit 0
	    fi
            rm -f "$PIDFILE"
	fi
	echo $"Noad is not active" ...
	;;
     -killall)
	pidof noad | xargs -r kill
	;;
     -rmmarks)
	rm -f "$2/marks.vdr"
	;;
     -rmallmarks)
	find "$VDR_VIDEO" -follow -type f -name marks.vdr -print0 2>/dev/null | xargs -r0 rm
	;;
     *)
	echo "unrecognized option: $1"
	exit 1
	;;
esac

exit $?


[Bearbeiten] Quellen