summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-system/ripD_eject.sh
blob: 715d0ddcd95e7631e97b3a82220ccb9d10386543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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