From dded86a4a063bbb25b68ccbed9ed21836cba912f Mon Sep 17 00:00:00 2001 From: Cecil Date: Sun, 29 Jul 2012 13:57:52 -0700 Subject: linhes-scripts:Added scripts to backup one's DVD. --- abs/core/linhes-scripts/LinHES-osd | 19 ++++++ abs/core/linhes-scripts/PKGBUILD | 10 ++- abs/core/linhes-scripts/ripD_eject.sh | 122 ++++++++++++++++++++++++++++++++++ 3 files changed, 148 insertions(+), 3 deletions(-) create mode 100755 abs/core/linhes-scripts/LinHES-osd create mode 100755 abs/core/linhes-scripts/ripD_eject.sh diff --git a/abs/core/linhes-scripts/LinHES-osd b/abs/core/linhes-scripts/LinHES-osd new file mode 100755 index 0000000..85f4a40 --- /dev/null +++ b/abs/core/linhes-scripts/LinHES-osd @@ -0,0 +1,19 @@ +#!/bin/bash +# /usr/local/bin/KnoppMyth-osd +# A script to put up text for on screen. +# +######################################################################## +FONT="-adobe-helvetica-bold-r-*-*-34-*-*-*-*-*-*-*" # Default +OPTS="-f $FONT -s 2 -p bottom -A left -i 50 -l 5" # values. +#----------------------------------------------------------------------- +[ -r /etc/rip.cfg ] && . /etc/rip.cfg +######################################################################## +# $1=text, $2=color, $3=delay. +JUNK=$(killall osd_cat >& /dev/null) +color='' ; delay='' +[ -z "$1" ] && exit 0 +[ -n "$2" ] && color="--color=$2" +[ -n "$3" ] && delay="--delay=$3" +JUNK=$(echo -e "$1" | osd_cat $OPTS $color $delay &) +######################################################################## +# End diff --git a/abs/core/linhes-scripts/PKGBUILD b/abs/core/linhes-scripts/PKGBUILD index 5458b28..6de0e85 100644 --- a/abs/core/linhes-scripts/PKGBUILD +++ b/abs/core/linhes-scripts/PKGBUILD @@ -3,7 +3,7 @@ pkgname=linhes-scripts pkgver=7 -pkgrel=42 +pkgrel=43 pkgdesc="Various scripts that help to make LinHES, LinHES." arch=('i686' 'x86_64') license=('GPL2') @@ -51,13 +51,15 @@ find_orphans.py acl_fix_fstab.py stop_xss.sh myth2mkv +LinHES-osd +ripD_eject.sh ) build() { cd ${srcdir} install -d ${pkgdir}/usr/LH/bin install -d ${pkgdir}/usr/LH/etc - install -D -m755 myth2* *.sh *.pl *.py vdpau* run-* pause_* ${pkgdir}/usr/LH/bin/ + install -D -m755 myth2* *.sh *.pl *.py vdpau* run-* pause_* LinHES* ${pkgdir}/usr/LH/bin/ install -D -m755 upgrade_screen_rc ${pkgdir}/usr/LH/etc/ mkdir -p ${pkgdir}/etc/sv/pause-mythcommflag/supervise cp run-pause-mythcommflag ${pkgdir}/etc/sv/pause-mythcommflag/run @@ -104,4 +106,6 @@ md5sums=('f56985b2d602e11dc1e10d3e7848b2a5' 'd8838461af9d446a1fd7e7883fdc75d1' 'cc9cdabcdfc969c2829b58c0e513488c' '54a478660d0f8150fe10112a9ecf2740' - '8fa34662c686b210c9943324b7df2feb') + '8fa34662c686b210c9943324b7df2feb' + 'b608044c9e7530a400d8f5b88fdfe6e6' + 'a9f112b9fa85df60194a210aec261d8f') diff --git a/abs/core/linhes-scripts/ripD_eject.sh b/abs/core/linhes-scripts/ripD_eject.sh new file mode 100755 index 0000000..33c37a5 --- /dev/null +++ b/abs/core/linhes-scripts/ripD_eject.sh @@ -0,0 +1,122 @@ +#!/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 +#----------------------------------------------------------------------- +FONT="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*" +OPTS="-f $FONT -s 2 -p bottom -A left -i 50 -l 4" +#----------------------------------------------------------------------- +[ -r /etc/rip.cfg ] && . /etc/rip.cfg +#----------------------------------------------------------------------- +LOCK=/tmp/.ripLock.$$ +[ "$DISPLAY" == "" ] && export DISPLAY=:0 +######################################################################## +function osd { # $1=text, $2=color, $3=delay + cmd="osd_cat $OPTS" + [ -n "$2" ] && cmd="$cmd --color=$2" + [ -n "$3" ] && cmd="$cmd -d $3" + killall osd_cat + echo -e "$1" | $cmd +} >& /dev/null +function osd_loop() { + FN=$1 ; shift +# TXT="$MAX to $dir" + TXT="$MAX to $dir/$FILE" + N=0 + while [ -f "$LOCK" ]; do + #osd "\nbacking up DVD: '$@'\n$TXT" gray 60 + osd "\nbacking up DVD: '$TITLE'\n$TXT" gray 60 + N=$(($N+1)) + [ -d "$FN" ] && SIZE=$(du -sh $FN | awk '{print $1}') +# TXT="$SIZE of $MAX @ $N min. elapsed" + TXT="$N min. elapsed" + done +} +######################################################################## +LinHES-osd "\nDetecting DVD" gray20 5 & +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 "\ndirectory: $dir\nnot found!" red 10 & + eject ; eject + exit 0 +fi +if [ ! -w "$dir" ]; then + echo "$dir not writable" >> $LOG + osd "\ndirectory: $Cdir\nnot writable!" red 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" + FILE=$TITLE.avi + 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" + FILE=$TITLE.avi + 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" + FILE=$TITLE.avi + 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 "\nfinish DVD: '$TITLE'\ninto $dir/$FILE" gray20 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 -- cgit v0.12