Files
bin/rollback.sh
2012-12-16 18:43:05 +01:00

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