diff options
Diffstat (limited to 'abs/core/LinHES-system/ripD_eject.sh')
-rwxr-xr-x | abs/core/LinHES-system/ripD_eject.sh | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/abs/core/LinHES-system/ripD_eject.sh b/abs/core/LinHES-system/ripD_eject.sh new file mode 100755 index 0000000..715d0dd --- /dev/null +++ b/abs/core/LinHES-system/ripD_eject.sh @@ -0,0 +1,118 @@ +#!/bin/bash +# /usr/LH/bin/ripD_eject.sh +# A DVD rip and eject script. +######################################################################## +DEV='/dev/sr0' # DVD device +MPNT='media/cdrom' # Mount Point +Ddir='/myth/video' # DVD output dir List +Bsnd='/usr/share/sounds/init.wav' # Begin sound file +Esnd='/usr/share/sounds/complete.wav' # End sound file +DATE=$(date +%Y%m%d_%H%M) # current date/time +LOG='/var/log/mythtv/ripD.log' # name of Log file. +TRACK=$(lsdvd | grep -i longest | awk '{print $3}') #Finds longest track +FILE=$TITLE +#----------------------------------------------------------------------- +[ -r /etc/rip.cfg ] && . /etc/rip.cfg +#----------------------------------------------------------------------- +LOCK=/tmp/.ripLock.$$ +[ "$DISPLAY" == "" ] && export DISPLAY=:0 +######################################################################## +function osd { # $1=text, $2=delay + msg_client.py --kill + msg_client.py --msg "$1" --timeout $2 +} >& /dev/null +function osd_loop() { + FN=$1 ; shift + TXT="to $dir/$FILE" + N=0 + while [ -f "$LOCK" ]; do + osd "Backing up '$TITLE' $TXT" 70 + N=$(($N+1)) +# [ -d "$FN" ] && SIZE=$(du -sh $FN | awk '{print $1}') +# TXT="$SIZE of $MAX @ $N min. elapsed" + TXT="($N min. elapsed)" + sleep 60 + done +} +######################################################################## +osd "Detecting DVD..." 60 & +echo "`date` detected DVD" >> $LOG +rm -f /tmp/.ripLock.* +#======================================================================= +for dir in $Ddir ; do + if [ -d $dir -a -w $dir ]; then + break + fi +done +#----------------------------------------------------------------------- +if [ ! -d "$dir" ]; then + echo "no $dir" >> $LOG + osd "$dir Not Found!" 10 & + eject ; eject + exit 0 +fi +if [ ! -w "$dir" ]; then + echo "$dir not writable" >> $LOG + osd "$dir Not Writable!" 10 & + eject ; eject + exit 0 +fi +#----------------------------------------------------------------------- +mount $DEV >& /dev/null +dev=$(readlink $DEV) +df=$(df -h /dev/$dev | grep /dev/$dev) +MAX=$(echo $df | while read d v r ; do echo $v ; done) +echo " backup $MAX to $dir" >> $LOG +#======================================================================= +# first make sure DMA is on: +sudo hdparm -d1 -u1 $DEV >& /dev/null +# attempt to get the DVD information: +TITLE=$(dvdbackup -i /dev/sr0 -I | grep information | awk '{ s = ""; for (i = 8; i <= NF; i++) s = s $i " "; print s }' | tr -d '"' | sed 's/ /_/g' | sed 's/_$//g') +if [ "$TITLE" == "DVD_VIDEO" -o "$TITLE" == "" \ + -o "$TITLE" == " " -o "$TITLE" == "[ ].*" ]; then + # if not a good title, + TITLE="dvdbackup_$DATE" +fi +echo " $TITLE" >> $LOG +if [ $1 = m ] +then + COMMAND="dvdbackup -M -i $DEV -o $dir -n $TITLE" + elif [ $1 = h ] + then +# COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=320:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 720 -o $dir/$TITLE.avi" + COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "High\ Profile" --main-feature" + FILE=$TITLE.mp4 + elif [ $1 = n ] + then +# COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=160:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 512 -o $dir/$TITLE.avi" + COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Normal" --main-feature" + FILE=$TITLE.mp4 + elif [ $1 = l ] + then +# COMMAND="mencoder dvd://$TRACK -alang en -oac mp3lame -lameopts br=96:cbr -ovc lavc -lavcopts vcodec=mpeg4:vhq -vf scale -zoom -xy 320 -o $dir/$TITLE.avi" + COMMAND="HandBrakeCLI -i $DEV -o $dir/$TITLE.mp4 --preset "Classic" --main-feature" + FILE=$TITLE.mp4 + elif [ $1 = i ] + then + COMMAND="dd if=$DEV of=$dir/$TITLE.iso bs=2048" + FILE=$TITLE.iso +fi +{ # for the redir below: + # Begin: + touch $LOCK + osd_loop "$dir/$TITLE" "$TITLE" & + dvdbackup -i $DEV -I + sleep 1 ; aplay $Bsnd + $COMMAND + # Finish: + rm -f $LOCK + osd "Done Backing up '$TITLE' to $dir/$FILE" 5 & + sleep 1 ; aplay $Esnd + # Eject the media: + sudo eject ; sudo eject +} > $dir/.$TITLE.log 2>&1 +echo " `du -sh $dir/$FILE`" >> $LOG +echo " `date` finished DVD" >> $LOG +exit 0 +######################################################################## +# End |