Rename pattern change: fix hang, DB optimisation

This commit is contained in:
Vincent Riquer 2013-06-21 14:06:00 +02:00
parent 0d50cdc61f
commit c5b50565c5

27
atom
View File

@ -720,7 +720,12 @@ do
' >&3
read -u4 line
if [[ $line != AtOM:NoMoreFiles ]]
while [[ $line != AtOM:NoMoreFiles ]]
do
renamefiles+=("$line")
read -u4 line
done
if (( ${#renamefiles[@]} ))
then
case "${destinationformat[$destination]}" in
'mp3') extension=mp3 ;;
@ -728,7 +733,8 @@ do
'vorbis') extension=ogg ;;
esac
echo -n "$destination: rename pattern changed, renaming files... "
while [[ $line != AtOM:NoMoreFiles ]]
echo 'BEGIN TRANSACTION;' >&3
for line in "${renamefiles[@]}"
do
oldfilename=${line%%::AtOM:SQL:Sep::*}
rest=${line#*::AtOM:SQL:Sep::}'::AtOM:SQL:Sep::'
@ -761,10 +767,12 @@ do
getDestDir
getDestFile
destfilename="$destdir/$destfile.$extension"
if [[ $oldfilename != $destfilename ]]
progressSpin
if [[ "$oldfilename" != "$destfilename" ]]
then
mv "$oldfilename" "$destfilename"
progressSpin
(( changedcount++ ))
commit=1
fi
echo "UPDATE destination_files" \
"SET filename=\"${destfilename//\"/\"\"}\"," \
@ -772,12 +780,17 @@ do
"\"${destinationrenamepath[$destination]}/${destinationrename[$destination]}:${destinationfat32compat["$destination"]}\"" \
"WHERE id=$destfileid;" \
>&3
if (( commit ))
then
echo $'COMMIT;\nBEGIN TRANSACTION;' >&3
unset commit
fi
fi
read -u4 line
done
echo -e $'\r'"$destination: Renamed ${count:-0} files\033[K"
echo 'COMMIT;' >&3
echo -e $'\r'"$destination: Renamed ${changedcount:-0} files\033[K"
fi
unset count
unset count changedcount renamefiles
done
copyFiles_action