100 lines
2.7 KiB
Bash
Executable File
100 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -x
|
|
|
|
EXT_DRIVE=/media/hdext
|
|
|
|
REC_DIR=$1
|
|
VDR_DIR=`echo $REC_DIR | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}'`
|
|
REC_NAME=`echo $REC_DIR | awk -F/ '{print $(NF-1)}'`
|
|
REC_NAME2=`echo $REC_DIR | awk -F/ '{print $(NF)}'`
|
|
|
|
function log {
|
|
echo $1 >> /tmp/rollout.log
|
|
}
|
|
|
|
function findRecInLinks {
|
|
local MOUNTPOINT=$1
|
|
local NAME=$2
|
|
local DIR="$(find "${MOUNTPOINT}/links/" -maxdepth 2 -name "$NAME")"
|
|
funcResult=$DIR
|
|
}
|
|
|
|
# find recording on dvd
|
|
function findRec {
|
|
local MOUNTPOINT=$1
|
|
local NAME=$2
|
|
|
|
# try in directory 'links'
|
|
findRecInLinks $MOUNTPOINT $NAME
|
|
local DIR=$funcResult
|
|
if [ -z "$DIR" ]; then
|
|
# not found in links - try root
|
|
DIR="$(find "${MOUNTPOINT}/" -maxdepth 2 -name "$NAME")"
|
|
# if not found, umount
|
|
if [ -z "$DIR" ]; then
|
|
log error "wrong dvd in drive / recording not found on dvd"
|
|
umount "$MOUNTPOINT" || { log error "dvd umount error (at: wrong dvd in drive / recording not found on dvd)"; exit 1; }
|
|
# If wanted, eject dvd
|
|
[ $EJECTWRONG -eq 1 ] && { eject "$DEVICE"; }
|
|
exit 3
|
|
fi
|
|
else
|
|
local LINKTARGET=$(readlink $DIR)
|
|
DIR=$(echo ${MOUNTPOINT}/links/$LINKTARGET)
|
|
fi
|
|
funcResult=$DIR
|
|
}
|
|
|
|
#mount $EXT_DRIVE
|
|
mountext.sh $EXT_DRIVE
|
|
|
|
if [ -f $EXT_DRIVE/vdrhd.num -a -f $REC_DIR/dvd.vdr ]; then
|
|
cmp $REC_DIR/dvd.vdr $EXT_DRIVE/vdrhd.num
|
|
if [ $? -eq 0 ]; then
|
|
svdrpsend.pl MESG "Zurückholen gestarted"
|
|
|
|
findRec $EXT_DRIVE $REC_NAME
|
|
EXT_DIR=$funcResult
|
|
log "Dir: $EXT_DIR"
|
|
#EXT_DIR="$(find ${EXT_DRIVE} -name $REC_NAME)"
|
|
#EXT_DIR="$(find ${EXT_DRIVE} -name $REC_NAME2)"
|
|
if [ -d "$EXT_DIR" ]; then
|
|
EXT_DIR_PAR=$(echo $EXT_DIR | awk '{a=$0; gsub(/\/[^\/]*\.rec/,"",$a);print $a}')
|
|
log "rsync $EXT_DIR/ $REC_DIR/"
|
|
log "recname $REC_NAME $REC_NAME2"
|
|
echo rsync -av --include /[0.9]*\.vdr/ $EXT_DIR/ $REC_DIR/
|
|
rsync -av --include /[0.9]*\.vdr/ $EXT_DIR/ $REC_DIR/
|
|
if [ $? -eq 0 ] ; then
|
|
echo rm $REC_DIR/dvd.vdr
|
|
rm $REC_DIR/dvd.vdr
|
|
echo rm -r $EXT_DIR_PAR
|
|
rm -r $EXT_DIR_PAR
|
|
findRecInLinks $EXT_DRIVE $REC_NAME
|
|
LINK=$funcResult
|
|
if [ ! -z $LINK ]; then
|
|
echo rm $LINK
|
|
rm $LINK
|
|
fi
|
|
#exit
|
|
umount $EXT_DRIVE
|
|
svdrpsend.pl MESG "Zurückholen abgeschlossen"
|
|
exit
|
|
else
|
|
svdrpsend.pl MESG "Zurückholen fehlgeschlagen"
|
|
fi
|
|
else
|
|
svdrpsend.pl MESG "externe Aufnahme nicht gefunden"
|
|
fi
|
|
else
|
|
svdrpsend.pl MESG "Laufwerksnummer paßt nicht"
|
|
fi
|
|
else
|
|
svdrpsend.pl MESG "Kein DVD-Archive Laufwerk"
|
|
fi
|
|
|
|
umount $EXT_DRIVE
|
|
|
|
|
|
|