diff --git a/atom b/atom index e1a22a4..b9b529f 100755 --- a/atom +++ b/atom @@ -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